CLI-JAW(1)

NAME

cli-jaw β€” 🦈 2-line install personal AI assistant. 5 engines (Claude, Codex, Gemini, OpenCode, Copilot), 108 skills, zero ban…

SYNOPSIS

$npm install -g cli-jaw

INFO

94 stars
16 forks
0 views
TypeScriptAI & LLM

DESCRIPTION

🦈 2-line install personal AI assistant. 5 engines (Claude, Codex, Gemini, OpenCode, Copilot), 108 skills, zero ban risk.

README

CLI-JAW

Stop juggling AI coding tools. Use all of them at once.

npm Version TypeScript Node License Docker

English / ν•œκ΅­μ–΄ / δΈ­ζ–‡ / ζ—₯本θͺž

CLI-JAW Manager Dashboard


What is CLI-JAW?

CLI-JAW is an open-source platform that unifies every AI coding CLI you already use β€” Claude, Codex, Gemini CLI, OpenCode, Copilot CLI β€” into one assistant with one memory and one dashboard. Your main CLI calls the others as "employees" (sub-agents), so you stop copy-pasting between heavy apps and start giving orders from a single place.

It routes through the subscriptions you already pay for. No per-token API billing. No rate limits on top of what you already have.

One developer is managing 100k+ lines of code with this thing. It's basically a super-app: multi-instance manager + mini-Obsidian notes + Kanban board + browser automation, running locally on your machine.


What's New in 2.0.0

This is the general availability release. Here's what landed:

FeatureWhat it means
Manager DashboardA super-app control plane. See every running JAW instance, start/stop/restart them, preview live Web UIs, inspect settings β€” all from one browser tab
Notes WorkspaceA mini-Obsidian baked into the dashboard. Folders, rename/move, split editor+preview, KaTeX math, Mermaid diagrams, syntax-highlighted code blocks
Kanban BoardDrag running instances into lanes. Card editor for tracking what each instance is working on
Employee SystemYour main CLI dispatches other CLIs as workers. "Fix the frontend" goes to OpenCode. "Update the API" goes to Codex. You approve the results
Responsive Mobile LayoutSidebar overlay, touch-friendly controls. Manage your fleet from your phone

Plus: improved PABCD orchestration, 230+ skills (32 active, 194 reference), SQLite FTS5 memory search, and Computer Use desktop automation.


Two-Line Install

npm install -g cli-jaw
jaw dashboard

That's it. Open http://localhost:3457. Requires Node.js 22+.

jaw serve also works if you prefer the classic server mode.

Auto-start on boot: jaw service install (auto-detects systemd / launchd / Docker).


Platform Setup

macOS β€” one-click script
  1. Open Terminal (Cmd + Space β†’ type Terminal)
  2. Paste and hit Enter:
curl -fsSL https://raw.githubusercontent.com/lidge-jun/cli-jaw/master/scripts/install.sh | bash
  1. Authenticate (see below) and launch:
jaw dashboard
Windows / WSL β€” one-click script

Step 1: Install WSL (PowerShell as Admin)

wsl --install

Restart, then open Ubuntu from the Start Menu.

Step 2: Install CLI-JAW

curl -fsSL https://raw.githubusercontent.com/lidge-jun/cli-jaw/master/scripts/install-wsl.sh | bash

Step 3: Reload and start

source ~/.bashrc
jaw dashboard
WSL Troubleshooting
ProblemFix
unzip: command not foundRerun the installer
jaw: command not foundsource ~/.bashrc
Permission errorssudo chown -R $USER $(npm config get prefix)
Linux

You know what to do.

npm install -g cli-jaw
jaw dashboard

Authenticate

You only need one. Pick whichever subscription you already have:

# Free options
copilot login        # GitHub Copilot (free tier available)
opencode             # OpenCode β€” free models available

Paid (monthly subscription you already pay for)

claude auth login # Anthropic Claude Max codex login # OpenAI ChatGPT Pro gemini # Google Gemini Advanced

Check everything at once: claude auth status && jaw doctor

Example jaw doctor output
🦈 CLI-JAW Doctor β€” 12 checks

 βœ… Node.js        v22.15.0
 βœ… Claude CLI      installed
 βœ… Codex CLI       installed
 ⚠️ Gemini CLI      not found (optional)
 βœ… OpenCode CLI    installed
 βœ… Copilot CLI     installed
 βœ… Database        jaw.db OK
 βœ… Skills          32 active, 194 reference
 βœ… MCP             3 servers configured
 βœ… Memory          structured/ exists
 βœ… Server          port 3457 available

The Dashboard

The dashboard is the main way to use CLI-JAW 2.0. It's a local web app that acts as command center for all your AI instances.

Instance Management

The navigator panel shows every JAW instance β€” running, stopped, or offline. For each one you can:

  • Start / Stop / Restart with one click
  • See the active CLI engine, model, port, and working directory
  • Use perm mode for persistent instances that survive reboots
  • Launch new instances pointed at different project directories

Live Preview

Select any running instance and its Web UI embeds directly in the dashboard via a preview proxy. Chat with your AI, see streaming responses, drag-and-drop files β€” all without leaving the manager.

Notes

A markdown vault lives inside the dashboard. Think mini-Obsidian:

  • Folder tree with create/rename/move/delete
  • Raw, split, and preview editing modes
  • Dirty-state markers so you don't lose unsaved work
  • KaTeX math rendering, Mermaid diagrams, syntax-highlighted code blocks

Kanban Board

Drag instance cards into lanes (Backlog / In Progress / Review / Done). Each card links to the live instance and has an editor for notes. Good for tracking what each AI session is working on when you're running multiple instances.

Settings Inspector

View and edit runtime settings for any selected instance: active CLI, model, reasoning effort, permission mode, working directory, employees, skills, MCP servers.


How the Employee System Works

This is the core idea: your main CLI calls other CLIs as workers.

You talk to one AI (the "Boss"). When it needs specialized work, it dispatches tasks to employees β€” each running their own CLI with their own model:

You: "Fix the frontend styling and update the API endpoint"

Boss (Claude) thinks... β”œβ”€β”€ Dispatches to Frontend employee (OpenCode) β†’ "Fix the CSS grid layout in dashboard.tsx" β”œβ”€β”€ Dispatches to Backend employee (Codex) β†’ "Update /api/users to return pagination metadata" └── Synthesizes both results for you

# Under the hood, it's one command:
jaw dispatch --agent "Frontend" --task "Fix the CSS grid layout in dashboard.tsx"

Employees are other AI CLIs configured in your settings. Each has its own session, its own model, its own context. The Boss reviews their output before presenting it to you.

Employees vs. Sub-agents

These are different things:

EmployeesSub-agents
WhatOther AI CLIs (Codex, OpenCode, etc.) configured as workersBuilt-in parallel task tool within a single CLI
WhenMulti-specialist work across different codebases or domainsInternal research, file reads, parallel analysis
Howjaw dispatch --agent "Name" --task "..."Automatic β€” the CLI spawns them internally

Use employees for "Frontend does CSS, Backend does API." Use sub-agents for "read these 5 files in parallel before deciding."


Five AI Engines

No per-token API billing. Route through subscriptions you already pay for.

CLIDefault ModelAuthCost
Claudeopus-4-6claude auth loginClaude Max subscription
Codexgpt-5.5codex loginChatGPT Pro subscription
Geminigemini-3.1-pro-previewgeminiGemini Advanced subscription
OpenCodeminimax-m2.7opencodeFree models available
Copilotgpt-5-minicopilot loginFree tier available

Fallback chain: if one engine is rate-limited, the next picks up. Configure with /fallback [cli1 cli2...].

OpenCode wildcard: connect any model endpoint β€” OpenRouter, local LLMs, any OpenAI-compatible API.

Switch engines live: /cli codex. Switch models: /model gpt-5.5. Works from Web, Terminal, Telegram, or Discord.


PABCD Orchestration

For complex tasks, CLI-JAW uses a 5-phase workflow. You approve every transition.

P (Plan) β†’ A (Audit) β†’ B (Build) β†’ C (Check) β†’ D (Done) β†’ IDLE
   β›”          β›”          β›”         auto        auto
PhaseWhat happens
P β€” PlanBoss writes a diff-level plan. Stops for your review
A β€” AuditRead-only worker verifies the plan is feasible (imports exist, signatures match)
B β€” BuildBoss implements. Read-only worker verifies the result
C β€” CheckType-check (tsc --noEmit), docs update, consistency check
D β€” DoneSummary of all changes. Returns to idle

State is DB-persisted and survives restarts. Workers cannot modify files β€” only verify. Activate with jaw orchestrate or /pabcd from any interface.


Memory

Three layers, each covering a different recall horizon.

LayerWhat it storesHow it works
History BlockRecent session contextLast 10 sessions, max 8000 chars, scoped to working directory. Injected at prompt start
Memory FlushStructured knowledge from conversationsTriggered after threshold (default 10 turns). Extracts episodes, daily logs, semantic notes as markdown
Soul + Task SnapshotIdentity and semantic recallCore values, tone, boundaries. FTS5 index returns up to 4 semantically relevant hits per prompt

All three layers feed into the system prompt automatically. Memory is searchable:

jaw memory search "how did we set up the API auth?"

Skills

230+ skills covering dev workflows, office documents, automation, and media.

CategorySkillsWhat they cover
Officepdf, docx, xlsx, pptx, hwpRead, create, edit documents. Korean HWP/HWPX via OfficeCLI
Automationbrowser, vision-click, screen-capture, desktop-controlChrome CDP, AI-powered coordinate click, macOS screenshots, Computer Use
Mediavideo, imagegen, lecture-stt, ttsRemotion video, OpenAI image generation, lecture transcription, text-to-speech
Integrationgithub, notion, telegram-send, memoryIssues/PRs/CI, Notion pages, Telegram media delivery, persistent memory
VisualizationdiagramSVG diagrams, charts, interactive visualizations rendered in chat
Dev Guidesdev, dev-frontend, dev-backend, dev-data, dev-testing, dev-pabcdEngineering guidelines injected into agent prompts

32 skills are always active. 194+ reference skills load on demand.

jaw skill install <name>    # activate a reference skill
jaw skill list              # see what's available

Browser & Desktop Automation

CapabilityHow it works
Chrome CDPNavigate, click, type, screenshot, evaluate JS, scroll, press keys β€” full DevTools Protocol control
Vision-clickScreenshot the screen β†’ AI extracts target coordinates β†’ clicks. jaw browser vision-click "Login button"
Computer UseDesktop app automation via Codex Computer Use MCP. Use Safari for localhost and it feels like the Codex app
DOM ReferenceDocumented selector maps for ChatGPT, Grok, Gemini web UIs
Diagram SkillGenerate SVG diagrams and interactive visualizations, rendered inline in chat

Computer Use lets you control any macOS app β€” Finder, Safari, System Settings, Xcode β€” through natural language. Point it at your localhost dev server in Safari and you get a full visual testing loop.


Messaging

Telegram

πŸ“± Telegram ←→ 🦈 CLI-JAW ←→ πŸ€– AI Engines

Text chat, voice messages (auto-transcribed via multi-provider STT), file/photo upload, slash commands (/cli, /model, /status), scheduled task delivery.

Setup (3 steps)
  1. Message @BotFather β†’ /newbot β†’ copy the token
  2. jaw init --telegram-token YOUR_TOKEN or use Web UI settings
  3. Send any message to your bot. Chat ID is auto-saved on first message

Discord

Same capabilities as Telegram β€” text, files, commands. Channel and thread routing with forwarder for agent result broadcast. Setup via Web UI settings.

Voice & STT

Voice input works on Web (mic button), Telegram (voice messages), and Discord. Providers: OpenAI-compatible, Google Vertex AI, or any custom endpoint.


MCP

Model Context Protocol lets AI agents use external tools. CLI-JAW manages MCP config for all five engines from one file.

jaw mcp install @anthropic/context7
# β†’ syncs to Claude, Codex, Gemini, OpenCode, Copilot config files simultaneously

No more editing five different JSON files. Install once, every engine gets it.

jaw mcp sync       # re-sync after manual edits

CLI Commands

# Core
jaw dashboard                     # launch manager dashboard
jaw serve                         # start server (http://localhost:3457)
jaw chat                          # terminal TUI
jaw doctor                        # 12-point diagnostics

Instances

jaw clone ~/project # clone instance to new directory jaw --home ~/project serve --port 3458 # run second instance jaw service install # auto-start on boot

AI & Orchestration

jaw dispatch --agent "Backend" --task "..." # dispatch employee jaw orchestrate # enter PABCD workflow

Skills & MCP

jaw skill install <name> # activate a skill jaw skill list # list available skills jaw mcp install <package> # install MCP β†’ syncs to 5 engines jaw mcp sync # re-sync MCP configs

Memory

jaw memory search <query> # search across all memory layers jaw memory save <file> <content> # save to structured memory

Browser

jaw browser start # launch Chrome (CDP) jaw browser snapshot # capture page state jaw browser vision-click "Login" # AI-powered click

Maintenance

jaw reset # full reset


Multi-Instance & Docker

Multi-Instance

Run isolated instances with separate settings, memory, and database:

jaw clone ~/my-project
jaw --home ~/my-project serve --port 3458

Each instance is fully independent β€” different working directory, different memory, different MCP config. The manager dashboard sees them all.

Docker

docker compose up -d       # β†’ http://localhost:3457

Non-root jaw user, Chromium sandbox enabled. Data persists in jaw-data named volume.

Docker details
# Dev build
docker build -f Dockerfile.dev -t cli-jaw:dev .
docker run -d -p 3457:3457 --env-file .env cli-jaw:dev

# Pin version
docker build --build-arg CLI_JAW_VERSION=2.0.0 -t cli-jaw:2.0.0 .

# If Chromium sandbox fails
docker run -e CHROME_NO_SANDBOX=1 -p 3457:3457 cli-jaw

Development

npm run build          # tsc β†’ dist/
npm run dev            # tsx server.ts (hot-reload)
npm test               # native Node.js test runner

Architecture details: ARCHITECTURE.md Β· Test coverage: TESTS.md Β· Internal docs: devlog/structure/


How It Compares

CLI-JAW 2.0Hermes AgentClaude Code
Model access5 CLIs via OAuth (Claude Max, ChatGPT Pro, Copilot, Gemini) + OpenCode wildcardAPI keys (OpenRouter 200+, Nous Portal)Anthropic only
Cost modelMonthly subscriptions you already pay forPer-token API billingAnthropic subscription
Primary UIManager dashboard + Web PWA + Mac app + TUITUI onlyCLI + IDE plugins
DashboardMulti-instance manager, Kanban, Notes workspaceNoneNone
MessagingTelegram (voice) + DiscordTelegram/Discord/Slack/WhatsApp/SignalNone
Memory3-layer (History/Flush/Soul) + SQLite FTS5Self-improving loop + HonchoFile-based auto-memory
Multi-agentEmployee system (dispatch other CLIs) + PABCDSubagent spawnTask tool
Browser automationChrome CDP + vision-click + Computer UseLimitedVia MCP
ExecutionLocal + DockerLocal/Docker/SSH/Daytona/ModalLocal
Skills230+ bundledSelf-creating + agentskills.ioUser-configured
i18nEnglish, Korean, Chinese, JapaneseEnglishEnglish

Troubleshooting

ProblemSolution
cli-jaw: command not foundnpm install -g cli-jaw again. Check npm bin -g is in $PATH
Error: node versionUpgrade to Node.js 22+: nvm install 22
NODE_MODULE_VERSION mismatchnpm run ensure:native (auto-rebuilds native modules)
EADDRINUSE: port 3457Another instance running. Use --port 3458 or stop it first
Telegram / Discord auth failsRun jaw doctor, check tokens, restart jaw serve
Browser commands failInstall Chrome/Chromium. Run jaw browser start first
Employee dispatch hangsEnsure the employee CLI is authenticated (jaw doctor)
Computer Use not workingmacOS only. Codex CLI required. Check Automation permission in System Settings

Contributing

  1. Fork and branch from master
  2. npm run build && npm test
  3. Submit a PR

Bug reports and feature ideas: Open an issue


MIT License Β· Built by developers who got tired of tab-switching between AI apps.

SEE ALSO

clihub5/4/2026CLI-JAW(1)