Otty
<p> A Mac native and beautiful terminal emulator </p> <p> <a href="https://www.producthunt.com/products/otty?utm_campaign=producthunt-atom-posts-feed&utm_medium=rss-feed&utm_source=producthunt-atom-posts-feed">Discussion</a> | <a href="https://www.producthunt.com/r/p/1169772?app_id=339">Link</a> </p>
Last verified:
What is Otty?
Otty is a modern, native terminal emulator focused on a fast, tactile experience and tight integration with code-focused agent workflows. It provides GPU-accelerated rendering, recoverable sessions, and a polished UI (tabs, panes, details panel, command palette, and an Xcode-style quick-open) designed for people who spend significant time in the terminal. The app emphasizes local-first features: offline use is fully functional with no account required, shell integration that tracks prompts and working directories, and a configurable config file for advanced users. Otty is aimed at developers, devops engineers, and users who run code agents or want a terminal that restores complex layouts and streams agent state into the terminal surface.
Otty pricing
Pricing model: Freemium
All offline usage is free and does not require an account; features that run locally (terminal rendering, tabs, splits, themes, recipes, autocomplete, and agent affordances) are included in the free tier. The website states: if it works offline, it's free forever; additional online or account-based features (if any) are not required for core usage.
Otty pros
- GPU-accelerated native rendering for smooth text and UI
- Designed around code-agent workflows with streaming hooks
- Robust session recovery that restores tabs, splits, and scrollback
- Open Quickly picker (⌘⇧O) that fuzzy-searches tabs, sessions, folders, hosts, and recipes
- VSCode-style command palette (⌘⇧P) for running actions from anywhere
- Details Panel showing working dir, git status, outline, and file tree
- Composer input affordance for multi-line agent sessions with undo/redo
- Rich vi-mode for keyboard-only navigation of scrollback and selection
- Shell integration that emits OSC marks for command outlines and status
- Config file accessible and reloadable for deep customization (~/.config/otty/config.toml)
- Agent install hooks for popular agents (writes small hook configs to integrate state)
- Session history that keeps last closed items and recent sessions for easy restore
- Per-agent behavior badges (processing, complete, awaiting input) for visibility
- No-account, fully offline core features available for free
- Platform polish: default terminal registration and per-app default settings
Otty cons
- macOS-first feature set (comparisons emphasize macOS apps like iTerm2)
- Some advanced features require installing agent-specific hooks
- Certain integrations modify user config files under home directories
- Automatic session restore may be surprising if user expects clean starts
- Windows/Linux parity and cross-platform details are less prominent
- Richer, long-established power-user features from older terminals may be missing
- Some behavior controlled via config file may require manual editing
- Agent features depend on which external agents you install and use
Frequently asked questions about Otty
Is Otty free to use?
Yes — the website states that all offline usage is free and does not require an account; anything that runs locally (terminal UI, panes, themes, recipes, autocomplete, and the agent affordances that stream state into the app) is included in the free tier.
What platforms does Otty support?
Otty is presented as a native, GPU-accelerated terminal with a strong macOS feature set and macOS-focused UX; documentation and comparisons emphasize macOS behavior and macOS shortcuts, so macOS is the primary supported platform.
How does session recovery work?
Otty persistently snapshots sessions and restores windows, tabs, splits, and scrollback on relaunch; after a clean quit it follows the on-launch setting (default restore_session), after a crash it always restores the last snapshot, and the app keeps the last several closed items and recent sessions for manual reopen.
Do I need an account to use Otty’s core features?
No — core and offline features work without an account; the site emphasizes local-first usage and explicitly says no account is required for the terminal and its offline features.
How do agent integrations work?
For each supported agent you install from Settings → Agents, Otty writes a small hook (under directories like ~/.claude/ or ~/.config/opencode/plugins/) so the agent can stream its state back into Otty; you can install or uninstall these hooks from the agent card in Settings.
Can I customize Otty’s behavior and keybindings?
Yes — Otty exposes a config file (~/.config/otty/config.toml) accessible from Settings → Advanced and supports reloading; many UI affordances and keybindings are documented and adjustable through settings and the command palette.
What does shell integration provide and can I disable it?
Shell integration injects small hooks that emit OSC 133 marks for prompt tracking, working-directory detection, command outlines, and exit-status indicators; it can be toggled off globally in Settings → Shell → Shell Integration, disabled per-window with launch flags, or skipped per-shell by exporting OTTY_DISABLE_INTEGRATION=1.
How do I set Otty as my default terminal for other apps?
Otty’s Settings → General → OS Integration lets you 'Set as Default Terminal' and configure defaults for common third-party apps (it skips apps not installed) to have those apps open shells in Otty.
What are the quick navigation features?
Otty provides an Xcode-style Open Quickly picker (⌘⇧O) that fuzzy-searches open tabs, recent sessions, folders, SSH hosts, agent sessions and saved recipes, plus Jump-to (⌘J) scoped to the focused pane and a VSCode-style command palette (⌘⇧P) for actions.
How does Otty handle crashes and repeated failures on launch?
Otty writes continuous snapshots so after a crash it restores the last snapshot regardless of on-launch settings; if it repeatedly crashes on launch it will stop auto-restoring after several attempts and start with a fresh session to break the crash loop.