English · Русский · 简体中文 · Docs home
- Node.js and npm.
- A native compiler toolchain supported by
node-ptyon your platform. - A graphical desktop session capable of running Electron.
- Optional agent CLIs —
codex,claude, orkimi— installed and available inPATHfor the launchers you intend to use.
CanvasTTY does not install or authenticate agent CLIs for you. Complete each provider's own login flow before expecting its sessions or subscription limits to work.
npm install
npm run devnpm install also prepares Electron and rebuilds the native node-pty module. The development command starts the real Electron application, not a browser-only mock.
- Open Terminal on Home to start a shell immediately in the last project directory.
- Open Codex, Claude, or Kimi to choose a project folder and launch profile for that fixed provider.
- Open Browser on Home to create or restore the built-in browser card. Agent sessions launched by CanvasTTY can use its open tabs while Settings → Browser → Agent access is enabled.
- Move or resize the live terminal and browser on the same canvas.
- Zoom out to use semantic summaries as navigation targets; zoom back in to interact with xterm or the native browser page.
- Return to Home to inspect real sessions, connected browser agents, and any provider quota windows that their adapters expose.
The YOLO profile disables provider safety prompts where the provider supports such a mode. CanvasTTY presents an explicit danger confirmation; use it only in a directory you are willing to let the agent modify.
- Press any live terminal card to select it. The selected card receives xterm keyboard focus immediately, so typing is sent to its PTY without a second press inside the text area.
- Press empty canvas to clear the selection, keyboard focus, and visible outline.
- Settings → Controls → Focus on hover can select the terminal under the pointer and clear it after leaving. The same delay applies in both directions: slow
500ms, normal250ms, or fast80ms. It is off by default. - Terminal scrolling and canvas zoom have independent wheel-direction settings. By default, wheel-down scrolls down in a live terminal, while canvas zoom keeps the original CanvasTTY direction.
Shift+Entersends a modified Enter sequence to insert a line break in compatible agent prompts without submitting.Enterkeeps its normal PTY behavior.- With terminal text selected,
Ctrl+C/Ctrl+Shift+CorCmd+Ccopies it. Paste withCtrl+Shift+V,Cmd+V, orShift+Insert. PlainCtrl+Cwithout a selection remains the PTY interrupt.
- The browser follows the same configured click-selection and hover-focus behavior as terminal cards. Clicking empty canvas clears the active application.
- Use the trusted tab strip and navigation bar for HTTP(S) pages. Hiding the card preserves tabs; Close all removes them after confirmation.
- Settings → Browser controls agent access and tab restore and shows recent downloads and command activity.
- Clear browser data removes tabs, site data, cache, auth cache, staged uploads, and the current download list. It deliberately keeps the persistent redacted audit log.
- The audit log lives below Electron
userData/browser/audit, rotates at 100 MB, and prunes rotated files older than 30 days during store initialization or rotation. Read Built-in browser and audit log before handling or deleting it.
| Command | Purpose |
|---|---|
npm run dev |
Start the Electron development build |
npm test |
Run the Node test suite |
npm run typecheck |
Type-check main/preload and renderer projects |
npm run build |
Type-check and create the production bundles |
npm run preview |
Launch the built application for a production-path check |
Before handing off a change, run the test, typecheck, and build commands, then inspect the affected flow in a real Electron window.
Settings are validated and persisted by the main-process SettingsStore. Live terminal state and bounded scrollback belong to TerminalManager; the renderer is not the source of truth for PTY history. Browser site data stays in its persistent Chromium partition, safe tab restore state stays in userData/browser-state.json, and the redacted hash-chain audit stays below userData/browser/audit. Provider credentials stay with the installed CLIs and trusted main-process adapters and are never returned over IPC.
For the exact boundaries, read Architecture. For interaction and visual rules, read the UI contract.
Install the compiler, Python, and platform headers required by your operating system, then rerun npm install. Do not replace the native PTY with a fake terminal: real local processes are a core product constraint.
A working CLI session and a readable subscription-quota API are separate capabilities. Re-authenticate the CLI, then inspect the explicit reason exposed by CanvasTTY. Some account types do not provide a subscription window; the UI must show unavailable rather than 0%.
This is expected. A newly opened PTY is idle. Only a structured provider lifecycle signal may set working or needs_approval; terminal text and PTY existence are not activity telemetry.
Next: read the browser and audit-log guide, author a widget, or study metrics and telemetry.