Sessions, side by side.
Electron shell with React 19 and Tailwind 4. Streaming markdown, attachments, async tool-approval prompts. Native tray, deep-links, auto-update.
Electron desktop and CLI for Claude agents. Both speak to one detached daemon over 127.0.0.1 — so long runs survive terminal exit, app restart, and the occasional crash.
npm i -g helm-agent
built on @anthropic-ai/claude-agent-sdk · node ≥ 20 · macOS · linux · windows
quit the terminal — the daemon keeps producing tokens.
[ 01 ] Why
Most agent setups are one-shot scripts.
Helm is a runtime.
Lifecycle, sessions, approvals, schedules, queues — managed. Workable from both GUI and terminal against the same engine. Started in one, picked up in the other, finished while you're asleep.
[ 02 ] Hero feature
The helm binary ships on npm as helm-agent. The work happens in a detached Bun HTTP+SSE daemon — with a lockfile, zombie detection, and a clean SIGTERM shutdown. Close your terminal, restart the app, reboot the daemon survives all three.
[ 03 ] Three more pillars
Electron shell with React 19 and Tailwind 4. Streaming markdown, attachments, async tool-approval prompts. Native tray, deep-links, auto-update.
Per-workspace issue queue, unattended loop worker with pre/post scripts and crash-resume, classic cron + one-shot at, spec-based helm eval, delivery to Telegram, DingTalk, WeCom, or webhooks.
Secrets in the OS keychain (0600 fallback); keys are never read back over HTTP. Each workspace owns its provider, model, permission mode, and optional SOUL.md persona. Fork sessions, rewind file state, deep-search chats. Skills and Plugins install at user, project, or local scope.
[ 04 ] Permission modes
Each workspace gets its own permission mode. Tasks scheduled by cron can override. Click a mode to see what an agent does next.
legal values, exactly:
default · acceptEdits · bypassPermissions · plan
helm workspace new myapp --permission-mode default
[ 05 ] How it works
Stream tokens flow up to whichever client is attached. Drop the client — the stream keeps producing, buffered by the daemon. Reattach to catch up.
@anthropic-ai/claude-agent-sdk
127.0.0.1:42424
terminal flow
windowed sessions
install · setup · chat · queue · cron · eval
# commands · type these npm i -g helm-agent helm daemon start
# config · interactive wizard helm setup # Walks through: provider → workspace → delivery channel. # Pick the SDK-default provider to skip the API-key prompt, or # paste an API key (stored in the OS keychain; never read back over HTTP). # Required before the first chat: a first-run guard blocks # `helm workspace chat` / `session send` until a provider is set.
# commands helm workspace chat default "ping" # (For an explicit workspace instead of the wizard's default:) helm workspace new myapp \ --add-project /your/project/path \ --permission-mode bypassPermissions helm workspace chat myapp "ping"
# output · streaming
→ assistant
pong. running 3 background tasks in default.
# commands helm issue add default "Refactor logger" helm loop start default --max 5
# config · daily review at 09:00 helm cron add "0 9 * * *" "summarize yesterday's commits" \ --workspace default --deliver telegram
# commands helm eval run ./evals/refactor.spec.ts
Last three releases — pulled live from the repo.
the dot in the nav lights up when the newest is under 14 days old.
[ 08 ] Install
npm i -g helm-agent
helm setup
Install, then run helm setup — the wizard configures a provider, workspace, and (optional) delivery channel.
desktop app is currently macOS · CLI runs on macOS, Linux, Windows · requires Node ≥ 20
open feedback, public issues · github.com/helm-agent/helm-agent
Changelog
Notes mirror the GitHub Releases feed. feat, fix, chore, and docs entries are tagged as chips.