This document covers interactive terminal usage for psi (--tui).
A baseline tmux-backed integration harness test exists at:
components/tui/test/psi/tui/tmux_integration_harness_test.cljReusable harness helpers live at:
components/tui/test/psi/tui/test_harness/tmux.cljWhat it validates:
exec psi --tuipsi is not on PATH: exec bb bb/psi.clj -- --tui刀: / Type a message)/help and assert help output marker appears/quit and assert pane process exits the Java TUI processRun it explicitly (integration tests are skipped by default in tests.edn):
clojure -M:test --focus psi.tui.tmux-integration-harness-test --skip-meta foo
# Basic TUI start
psi --tui
# OpenAI example
psi --model gpt-4o --tui
# TUI with live nREPL introspection
psi --tui --nrepl 8888
Development/non-canonical alternatives may still use repo-local clojure -M:run ...
paths, but the launcher-owned psi command is now the primary operator path.
/login # browser-based OAuth flow
/logout
/status /history /new /resume /tree [session-id] /worktree /help /quit /skills /prompts /remember [text]
/project-repl /project-repl start /project-repl attach /project-repl stop /project-repl eval <code> /project-repl interrupt
/skill:<name> plus any extension commands such as /work-on, /work-done, /work-rebase, /work-status
/resume dispatches to the backend; when selection is needed, the backend requests
a frontend action and TUI renders the persisted-session picker (session files on disk)./tree dispatches to the backend; when selection is needed, the backend requests
a frontend action and TUI renders the live context session picker (in-process multi-session view)./tree <session-id|prefix> switches directly to a live context session by id./tree name <session-id|prefix> <name> assigns an explicit human name to a live context session./tree picker mode, sessions render in parent/child order with explicit tree
glyphs (root ●, branch connectors ├─ / └─ / │).[active] [stream]) to
keep deep trees and mixed session states visually stable.The selector UI is frontend-native, but candidate lists and command semantics are backend-owned.
Can you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |