Skip to content

Interactive CLI

Otso includes an interactive CLI built with a text user interface (TUI) for common tasks:

  • Guided imports from other platforms.
  • Duplicate scanning and merge review.
  • Publishing drafts to sites and social networks.
  • Full-text search and tagging.
  • Configuration and plugin management.
  • View building, event tails, data cleanup, and encrypted backups.
Terminal window
$ otso import
┌──────────────────────────────────────────────────────────────────────┐
│ Otso • Import │
│----------------------------------------------------------------------│
│ Choose a platform (↑↓/Enter, type to search): │
│ ▸ Twitter / X │
│ Instagram │
│ Google Photos │
│ Slack │
│ YouTube │
│ Reddit │
│ GitHub │
│ ChatGPT │
│ Back │
└──────────────────────────────────────────────────────────────────────┘
Terminal window
$ otso dedupe resolve
┌──────────────────────────────────────────────────────────────────────┐
│ Resolve Duplicates & Merges (↑↓ navigate • Enter open • / search) │
│----------------------------------------------------------------------│
│ 1) [DUP] 0.98 p_9f3 "Sunny day at the lake" twitter ←→ mastodon │
│ 2) [MER] 0.92 p_a1c Photo + caption + alt text (two variants) │
│ 3) [CNF] — p_77 Visibility mismatch: public vs private │
│----------------------------------------------------------------------│
│ [A]ccept suggestion [M]anual merge [K]eep both [S]kip [Q]uit │
└──────────────────────────────────────────────────────────────────────┘
Terminal window
$ otso publish
┌──────────────────────────────────────────────────────────────────────┐
│ Publish • Choose a target │
│----------------------------------------------------------------------│
│ ▸ My Site (Micropub, blog view) │
│ Mastodon (@casey@mastodon.social) │
│ Bluesky (@casey.bsky.social) │
│ WordPress (casey.blog) │
│----------------------------------------------------------------------│
│ [ Back ] │
└──────────────────────────────────────────────────────────────────────┘
Terminal window
$ otso search "sunny day lake"
┌──────────────────────────────────────────────────────────────────────┐
│ Search: "sunny day lake" [↑↓ to scroll • Enter to open • / refine] │
│----------------------------------------------------------------------│
│ 1) p_9f3 note 2025-09-08 "Sunny day at the lake" tags: life,photo│
│ 2) p_b42 photo 2025-08-21 lake.jpg alt:"mountain lake" │
│ 3) p_a1c article 2025-07-30 "Lakes I love" │
│----------------------------------------------------------------------│
│ [ Open ] [ Tag ] [ Publish ] [ Copy link ] [ Back ] │
└──────────────────────────────────────────────────────────────────────┘
Terminal window
$ otso config get
┌──────────────────────────────────────────────────────────────────────┐
│ Config │
│----------------------------------------------------------------------│
│ storage.path ~/.otso │
│ visibility.default private │
│ publish.defaultTargets [site] │
│ connect.pollInterval 15m │
│ web.port 5173 │
│----------------------------------------------------------------------│
│ [ Edit ] [ Reset ] [ Export ] [ Back ] │
└──────────────────────────────────────────────────────────────────────┘