terminal-jarvis
BA-CalderonMorales · BA-CalderonMorales/terminal-jarvis
Một trung tâm điều khiển để điều phối việc chuyển đổi ngữ cảnh và quản lý nhiều môi trường AI agent viết code từ giao diện terminal.
In the midst of all the tools out there that you can possibly use to keep track of them. Here's a "shovel" that just works to try them all out.
Xem trước
Bạn có thể làm gì với nó
- Kiểm tra và quản lý các AI agent viết code khác nhau từ một giao diện duy nhất.
- Dễ dàng chuyển đổi giữa các môi trường agent khác nhau như Claude, Gemini hoặc Codex.
- Xem trước và lên kế hoạch các lệnh của agent trước khi thực thi để đảm bảo an toàn.
Kiểm tra an toàn
Không thấy dấu hiệu rủi ro trong các file đã quét.
Quét tự động các file trong repo. Luôn xem lại code trước khi chạy.
Trích từ README
Terminal Jarvis
Command center for orchestrating context switching between coding-agent harnesses
Safe Testing Recommended: Terminal Jarvis is a harness for AI coding tools that can modify files and execute commands. For the safest experience, test in a remote development environment such as GitHub Codespaces, Coder, DevPod, or Google Colab.
Registries that don't animate GIFs render the static frame docs/demo-tui.png; see docs/demo.md for how both are recorded.
Install
Package mechanics, supported platforms, and update behavior: Installation.
# Cargo
cargo install terminal-jarvis
# Cargo binary name is terminal-jarvis; add an alias if you want a short call:
# echo 'alias tj=terminal-jarvis' >> ~/.bashrc
# npm
npm install -g terminal-jarvis
# The npm package also installs a tj shim, so you can call either:
# terminal-jarvis list # or tj list
# Homebrew
brew install BA-CalderonMorales/homebrew-terminal-jarvis/terminal-jarvis
Quick Start
Inspect and safely gate catalog descriptors for Claude, Gemini, Qwen, Pi, Droid and a variety of other AI assistants from one terminal interface. The modes, the launch guards, and the full command surface: Usage.
# Open the interactive switcher (bare tj on a terminal does the same)
terminal-jarvis tui
# List every coding agent
terminal-jarvis list
# Inspect a harness
terminal-jarvis show opencode
# Preview a capability command
terminal-jarvis plan codex headless
# Select and verify the active harness
terminal-jarvis use opencode
terminal-jarvis current
terminal-jarvis check
# Optional: block harness commands until Trivy clears this workspace
terminal-jarvis gate enable trivy
terminal-jarvis gate status
Commands
Commands run in one of two ways: headless (terminal-jarvis <command>) or
inside the interactive switcher (terminal-jarvis tui), and every command is
the same however you reached the tool:
- Installed globally (npm, Homebrew, or Cargo):
terminal-jarvis list/tj list - No install -- run on demand from anywhere:
npx terminal-jarvis list - Built from source (this repository):
cargo run -- list
First time here? No install needed -- npx terminal-jarvis tui opens the
switcher directly.
Headless (terminal-jarvis <command> / tj <command>) -- one command per
invocation, for scripts, CI, and one-shot tasks:
| Command | Purpose |
|---|---|
list | Show all coding agents |
check | Report binary + env readiness |
show <harness> | Inspect a harness's capabilities |
install <harness> | Install a harness |
update [<harness>] | Upgrade a harness |
plan [harness] <capability> | Preview the shell command |
use <harness> / current | Select / show active harness |
run [harness] [capability] [args...] | Execute a capability |
security [status|audit|<harness>] | Security posture |
gate [status|list|enable|disable|run] | Optional local security gate |
version [--verbose] / --version / -v / --info | Version info |
self-update [--dry-run] / --update | Update Terminal Jarvis or print the update command |
config show | Active config state |
auth help <harness> | Credential setup guidance |
[harness] [args...] | Pass-through to harness binary |
Interactive (terminal-jarvis tui / bare tj on a terminal) -- the
chat-style switcher with the numbered picker and readiness dashboard. Every
headless command above also works here, plus:
| Command | Purpose |
|---|---|
tui | Open the switcher |
home | Back to the welcome frame (works as clear too) |
exit | Leave the switcher |
Layout
The repository is a few small planes, and every Rust domain is bucketed the same way -- once you can read one, you can read them all.
src/ # the std-only Rust CLI
├── main.rs # entry point; lib.rs is the crate root
├── contracts/ # the shared data model (Harness, capabilities)
├── cli/ # parsing, guards, dispatch, tables, help
├── catalog/ # loads and validates the data plane
├── context/ # platform, distribution, active-harness state
├── diagnostics/ # readiness reports, probes, PATH resolution
├── gates/ # optional local security gate (Trivy)
├── runtime/ # executes harness capability commands
├── security/ # credential and effect posture
└── tui/ # the interactive switcher (chat-style shell)
harnesses// # the data plane: one folder per coding agent
├── index.toml # name, display, binary, env requirements
├── download/index.toml # install without sudo
├── update/index.toml # upgrade without interactive auth
├── headless/index.toml # non-interactive command mode
├── version/index.toml # print installed agent version
├── stats/index.toml # local agent statistics
├── models/index.toml # list available models
├── security/index.toml # sandbox and approval settings
├── ui/index.toml # interactive terminal UI
└── yolo/index.toml # bypass safeguards (dangerous)
tests/ # integration tests, one binary per domain
scripts/bash/ # automation: catalog, delivery, release, verify
docs/ # decisions, contracts, usage, demo, legacy
build/ # the build script only
npm/ homebrew/ # distribution launchers and formulae
Each Rust domain inside src/ keeps the same shape: index.rs as the public
face, logic/ for behavior, structs/ for data, tests/ for proof, and
every file st