Your AI Development Command Center
AI agents code overnight in parallel git worktrees — you review the diffs over coffee.
npm i -g clitrigger && clitriggerUp and running in 60 seconds — open http://localhost:3000, set a password, add a project, write TODOs, hit Start.
CLITrigger brings your day's work and your AI agents into one place. Capture what needs doing — in a personal calendar, a planner, or a project knowledge wiki — then hand it to multiple AI coding agents (Claude Code · Codex · Gemini CLI) running in parallel, each in its own isolated git worktree.
While you sleep (or focus elsewhere), they burn through your token quota. Next morning you sit down, review the stack of diffs, and accept / reject / merge.
Parallel AI execution — without losing context.
Running Claude Code in your terminal, you drive one agent at a time and babysit it. CLITrigger fans that out: many agents, each in its own isolated worktree, running while you're away — and a single place to plan the work and review every diff when they're done.
Boris Cherny, creator of Claude Code, emphasizes parallelism as the key to AI-assisted development. Waiting for one task to finish before starting the next is the new bottleneck.
At the same time, most AI services have rate limits — you can burn through your daily quota by noon and be stuck waiting until midnight.
And as AI writes more of the code, the developer's real job becomes capturing intent and reviewing output — which falls apart the moment your context is scattered across sticky notes, terminals, and a dozen browser tabs.
CLITrigger solves all three:
- Right now — Multiple tasks run in isolated git worktrees, with Claude / Gemini / Codex executing in parallel
- Without hitting limits — Schedule tasks for off-peak hours to make the most of your token quota
- Without losing the thread — Capture in one place (calendar, planner, wiki), delegate, and review every diff holistically
- Better output — Multiple AI agents debate and review before implementation, producing higher-quality results than a single AI working alone
CLITrigger spans four layers — plan & organize what needs doing, delegate it to AI, review & ship the results, and access it from anywhere. Each feature below has a full guide in the Wiki (↗).
One personal calendar overlaying your memos, every project's schedules, planner due dates, and assigned Jira issues. ↗
One calendar overlaying personal memos, cross-project schedules, planner due dates, and assigned Jira issues
A lightweight task planner — capture ideas, then convert any item into a TODO, schedule, or session; Markdown import/export. ↗
A per-project Obsidian-style knowledge base with a [[wikilink]] graph — inject any file into a prompt, CLI-agnostically. ↗
The Vault tab — browse project markdown with inline preview and a force-directed wikilink graph, then selectively inject files into prompts
One-click launcher for your frequent external tools (executables, commands, URLs) from the sidebar. ↗
Every TODO runs in its own git worktree with Claude / Gemini / Codex in parallel, plus dependency chains and merge control. ↗
Long-lived CLI sessions in floating windows with VS Code-style docking, pop-out, and real xterm.js terminals. ↗
Claude, Gemini, and Codex sessions docked side-by-side via VS Code-style window grouping — each running in its own worktree branch
Architect / developer / reviewer agents debate before implementing, then commit code or send action items to the planner. ↗
Run tasks on cron or one-off schedules, with auto-retry at the exact rate-limit reset time. ↗
Pick Claude / Gemini / Codex per project, TODO, or agent; strict sandbox confines file access to the worktree. ↗
Triage every overnight TODO across projects in one keyboard-driven card stack — navigate, merge, or discard in a keypress. ↗
A Fork / SourceTree-style Git client in the browser — stage, commit, push, and manage branches and diffs. ↗
Per-project cost and execution stats — by CLI, by status, and over time. ↗
Real-time WebSocket log streaming in Chat (markdown) or Raw (terminal) mode. ↗
Reach CLITrigger from anywhere via Cloudflare Tunnel, with completion notifications and custom-domain routing. ↗
| Layer | Tech |
|---|---|
| Backend | Node.js · Express · TypeScript · SQLite · WebSocket |
| Frontend | React 18 · Vite · Tailwind CSS · Recharts |
| AI CLIs | Claude · Gemini · Codex (Adapter Pattern) |
| Git | simple-git (worktree management) |
| Scheduling | node-cron |
| Terminal | node-pty (TTY support) · xterm.js (pixel-perfect rendering) |
| Remote Access | Cloudflare Tunnel (optional) |
Download the installer for your platform from the latest GitHub release:
- Windows —
CLITrigger-Setup-<version>.exe(NSIS installer) or the portable.exe - macOS —
CLITrigger-<version>.dmg(Apple Silicon & Intel) - Linux —
CLITrigger-<version>.AppImage
The desktop app bundles Node.js and the native modules (better-sqlite3, node-pty, cloudflared), so no separate runtime install is needed. On first launch a setup screen appears in the embedded browser — pick a password there and you're in. External sharing (Cloudflare tunnel) stays paused until setup completes, so the first user is guaranteed to be you.
# Install
npm i -g clitrigger
clitrigger
# Upgrade to the latest version
npm i -g clitrigger@latest
# Check current version: clitrigger --versionOn first run the server starts immediately. Open http://localhost:3000 → set a password on the welcome screen → register a project → write TODOs → click Start. Change the password later via Settings → Account in the web UI.
CLITrigger also prints a one-line Update available: <new> -> npm i -g clitrigger@latest hint at startup whenever a newer version is on npm — no auto-update, you decide when to upgrade.
# Change settings
clitrigger config port 8080 # Change port
clitrigger config tunnel on # Enable Cloudflare tunnel for external sharingPrerequisites: Node.js 22+ (use an LTS release), Git, at least one AI CLI (Claude / Gemini / Codex)
Supported Platforms: Windows · macOS · Linux — all core code is cross-platform compatible. Prefer an LTS (even-numbered) Node.js. A brand-new major (e.g. an odd/just-released version) may not have prebuilt native binaries yet, which forces a source build requiring a C++ toolchain (Visual Studio Build Tools on Windows,
xcode-select --installon macOS).
Click to expand
# 1. Clone & install
git clone https://github.com/HyperAITeam/CLITrigger.git
cd CLITrigger
npm install
cd src/client && npm install && cd ../..
# 2. Configure environment
cp .env.example .env
# AUTH_PASSWORD is optional — leave it blank and the dev server will show the
# setup screen on first browser load. Set it only if you want to skip setup.
# 3. Run
npm run devOpen http://localhost:5173.
Double-click any bat file in scripts/ — no terminal needed.
| File | Action |
|---|---|
install.bat |
Install dependencies (first time) |
dev.bat |
Start development mode |
build.bat |
Build project |
start.bat |
Start production server |
start-tunnel.bat |
Start with Cloudflare Tunnel |
test.bat |
Run all tests |
npm run commands work identically on all platforms. Use the terminal instead of .bat scripts.
npm run dev # Development mode
npm run build # Build
npm run start # Production server
npm test # Run tests# Install cloudflared
winget install cloudflare.cloudflared # Windows
brew install cloudflared # macOS
# Set TUNNEL_ENABLED=true in .env, then:
npm run start:tunnel
# → Outputs https://xxxx.trycloudflare.com in the consoleTo avoid the "dangerous site" browser warnings on *.trycloudflare.com / *.cfargotunnel.com, point a named tunnel at your own domain. Either use the sidebar ⚙ → Tunnel settings modal (Tunnel Name + Custom Hostname), or the CLI:
clitrigger config tunnel hostname app.your-domain.com
cloudflared tunnel route dns <tunnel-name> app.your-domain.com # one-timeThe displayed URL becomes https://app.your-domain.com and reputation tracks your domain.
📖 The full manual lives in the Wiki — installation, every feature guide, and remote access.
| Doc | Content |
|---|---|
| Wiki | Detailed feature guides and usage |
| SETUP.md | Detailed installation and usage guide (한국어) |
| changelog/ | Version history (per-date entries by month) |
| CICD.md | GitHub Actions CI/CD setup |
| TESTING.md | Testing guide |
If CLITrigger saves you time, please give us a star — it genuinely helps the project reach more developers.
Want to help shape what comes next? We're actively looking for contributors:
- File an issue — bug reports, feature requests, and rough ideas all welcome at Issues
- Open a PR — start with
good first issuelabels, or pick anything that itches you - Share what you built — drop your worktree workflows, custom plugins, or productivity tips in Discussions
Every star, issue, and PR moves this faster. Thank you 🙏
Thanks to everyone who has contributed to CLITrigger!
MIT — Free to use, modify, and distribute.





