Files
kandev/apps/cli
João Salavisa 8a4ac6c570 fix(cli): include node bin dir in service unit PATH for fnm/nvm/asdf/volta/mise (#1000)
* fix(cli): prepend node bin dir to service unit PATH so npx-based agents resolve

systemd/launchd units hard-coded a system-only PATH. Under per-user node
managers (fnm, nvm, asdf, volta, mise), node lives in a versioned
subdirectory like ~/.local/share/fnm/node-versions/v24.14.0/installation/bin,
so the daemon could exec node (ExecStart resolves the absolute path) but
could not exec npx — every ACP agent built with `npx -y <bridge-pkg>`
(claude, codex, opencode, …) failed at spawn time with "peer disconnected
before response".

`captureLauncher()` already records the node binary path. Its parent dir
is exactly where the matching npm/npx live, so prepend it to the unit's
PATH (with dedup so /usr/local/bin etc. don't appear twice).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix(cli): guard pathWithNodeBinDir against non-POSIX nodePath

`path.dirname` returns `'.'` on POSIX when given a path with no `/`
separator (e.g. a Windows-style `C:\…\node.exe`). Prepending `.` to a
service unit's PATH would put CWD ahead of system dirs in the daemon
context — a latent privilege-escalation footgun if any future caller
ever passed a relative or bare-filename nodePath. Production is safe
because `captureLauncher()` uses `process.execPath` (always absolute on
Linux/macOS), so the guard is defensive, not a behavior change.

Adds regression tests for both systemd and launchd, plus a previously
missing launchd system-mode + versioned-bin-dir test.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Kandev Agent <agent@kandev.dev>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 22:35:07 +01:00
..
2026-05-19 22:51:13 +00:00

Kandev

Manage tasks. Orchestrate agents. Review changes. Ship value.

Quick Start

Homebrew

brew install kdlbs/kandev/kandev
kandev

NPX (requires npm 7+)

npx kandev@latest

Either install path resolves a platform-matched runtime (Go backend, agentctl, Next.js standalone web), launches the backend + web, and opens your browser. Data (worktrees, SQLite DB) is stored in ~/.kandev by default.

Version and Updates

The package manager owns the runtime version. kandev@X.Y.Z ships with the matching runtime.

  • Update via Homebrew: brew upgrade kandev
  • Update via npm/npx: npx kandev@latest or npm install -g kandev@latest
  • Print CLI version: kandev --version

Advanced: pin a specific runtime tag

--runtime-version <tag> downloads a specific GitHub release runtime instead of using the installed one. For debugging compatibility issues only:

kandev --runtime-version v0.16.0

Run as a Service

Install kandev as a systemd (Linux) or launchd (macOS) service so it auto-starts and stays running across reboots:

kandev service install                   # user mode (laptop, single-user)
sudo kandev service install --system     # system mode (VPS, shared host)

See docs/run-as-a-service.md for the full guide — user vs system mode comparison, update workflow, troubleshooting.

What You Get

  • Multi-agent support - Claude Code, Codex, GitHub Copilot, Gemini CLI, Amp, Auggie, OpenCode
  • Integrated workspace - Terminal, code editor with LSP, git changes, browser preview, and chat
  • Kanban & pipeline views - Organize tasks with opinionated workflows and gates
  • CLI passthrough - Drop into raw agent TUI mode for full terminal access
  • Workspace isolation - Git worktrees prevent concurrent agents from conflicting
  • Session management - Resume and review agent conversations

Supported Agents

Agent Default Model Protocol
Claude Code Sonnet 4.5 stream-json
Codex GPT-5.2 Codex Codex
GitHub Copilot GPT-4.1 Copilot SDK
Gemini CLI Gemini 3 Flash ACP
Amp Smart Mode stream-json
Auggie Sonnet 4.5 ACP
OpenCode GPT-5 Nano REST/SSE

Beta - Under active development. Expect rough edges and breaking changes.

Requirements

  • Node.js (for npx)
  • Git
  • Docker (optional - needed for container runtimes)

Platforms

  • macOS (Intel + Apple Silicon)
  • Linux (x64)
  • Windows (x64, WSL)

Learn More

Open source, multi-provider, no telemetry, not tied to any cloud.

See the GitHub repository for architecture, vision, development setup, and contributing guidelines.

License

AGPL-3.0