AI-powered project management board. Create issues, assign them to AI coding agents, and watch them work in real time.
BKD is a unified frontend for CLI-based coding agents — Claude Code and Codex. You manage a Kanban board; the agents write the code.
- Kanban Board — Drag-and-drop issues across Todo / Working / Review / Done columns
- Multi-Agent — Supports Claude Code and OpenAI Codex as execution engines
- Real-time Chat — Stream agent output as it runs; send follow-up messages mid-session
- Diff Viewer — See file changes made by the agent in a GitHub-style diff panel
- File Browser — Browse, view, and navigate project files with syntax highlighting
- Web Terminal — Built-in xterm.js terminal for direct shell access
- File Upload — Attach files to issues as context for the agent
- Webhooks — Configurable event notifications for issue status changes
- Multi-turn Sessions — Continue conversations with full session history
- Sub-agent Visibility — Work a Claude sub-agent does is nested under the call that dispatched it, with live progress
- Session Import — Scan Claude Code and Codex sessions run outside BKD and adopt one as an issue
- Scheduled Tasks — Cron jobs with execution history and auto-pause after repeated failures
- Git Worktrees — Run an issue in its own worktree so parallel agents never collide
- Process Manager — See and terminate every running engine process
- Supervised Updates — Runs under the lode supervisor: verified releases, health-checked restarts, automatic rollback
- i18n — Chinese and English UI
- Dark Mode — Light / Dark / System theme
- Mobile Friendly — Responsive layout with touch support
BKD runs under the lode supervisor, which fetches a release, verifies it, starts BKD, and applies later updates — rolling back automatically if a new version fails to come up. Linux and macOS, x64 and arm64.
Releases are sha256-verified. lode also checks an ed25519 asset signature when the publisher provides one; BKD releases are not signed yet.
# 1. lode itself — on arm64 or macOS swap in the matching asset
# (lode-linux-arm64 / lode-darwin-x64 / lode-darwin-arm64)
curl -fsSL https://github.com/dotns/lode/releases/download/v0.1.0/lode-linux-x64.tar.gz \
| sudo tar -xz -C /usr/local/bin lode lode-cli
# 2. an install root you own — BKD spawns coding agents in your workspace, so it
# should not run as root
sudo mkdir -p /opt/bkd && sudo chown "$(id -un)" /opt/bkd
# 3. the ready-to-use config — edit the paths marked CHANGE ME (default /opt/bkd)
curl -fsSL https://raw.githubusercontent.com/bkhq/bkd/main/docs/bkd.lode.toml \
-o /opt/bkd/lode.toml
# 4. run — lode installs the current release and supervises it
lode --dir /opt/bkdOpen http://localhost:3000 once it is up. On arm64 or macOS also update the
[runtime].download bun URL in lode.toml — it is the third CHANGE ME.
Already running a
bkd-launcher-*install? It will not reach current releases. The package was renamed frombkd-app*.tar.gztobkd-server.tar.gz, so the old launcher finds no matching asset and keeps running whatever it has. Migrate deliberately — your database, uploads and worktrees stay where they are:curl -fsSL https://raw.githubusercontent.com/bkhq/bkd/main/scripts/migrate-to-lode.ts -o migrate-to-lode.ts bun migrate-to-lode.ts --root /opt/bkd # preview bun migrate-to-lode.ts --root /opt/bkd --apply
docs/deployment.md is the full guide: lode.toml reference, signature
verification, update policy, and day-to-day operations.
BKD spawns AI coding agents as child processes. Install at least one before using:
npm install -g @anthropic-ai/claude-codeRequires ANTHROPIC_API_KEY in your environment or configured via claude CLI.
npm install -g @openai/codexRequires OPENAI_API_KEY or CODEX_API_KEY, or authenticate via codex CLI.
BKD auto-detects which agents are installed at startup. You can use any combination.
This repository includes a single BKD skill package at skills/bkd/. Install it with npx skills and use it to operate a running BKD server through the REST API.
Before using the skill, point BKD_URL at the BKD API root:
export BKD_URL=http://localhost:3000/apinpx skills add bkhq/bkd --skill bkd --globalnpx skills add bkhq/bkd --skill bkdRestart Codex after installing the skill. You can then invoke it with prompts such as Use $bkd to list projects or Use $bkd to check execution capacity.
- Create a project — Give it a name and set the workspace directory (the repo the agents will work in)
- Create an issue — Describe the task, pick an AI engine and model
- Execute — Click execute; the agent spawns in your workspace and starts working
- Chat — Send follow-up messages, upload files, or cancel at any time
- Review — View diffs, check the agent's tool calls, drag the issue to Done
All configuration is done via environment variables. Create a .env file in the project root (Bun auto-loads it) or set them in your shell. See .env.example for a full template.
| Variable | Description | Default |
|---|---|---|
PORT |
Server port | 3000 |
HOST |
Listen address | 0.0.0.0 |
ROOT_DIR |
Install root — pins data/ so it survives an upgrade |
auto-detected |
DB_PATH |
SQLite database path | data/db/bkd.db |
LOG_LEVEL |
Log level (trace / debug / info / warn / error) |
info |
SERVICE_NAME |
Logger name prefix | bkd |
LOG_EXECUTOR_IO |
Log executor stdin/stdout (1 = on, 0 = off) |
1 |
ANTHROPIC_API_KEY |
Claude API key | — |
OPENAI_API_KEY |
OpenAI / Codex API key | — |
CODEX_API_KEY |
Codex-specific API key (fallback) | — |
ENABLE_RUNTIME_ENDPOINT |
Enable /api/runtime debug endpoint |
disabled |
Server name, server URL, webhooks, max concurrency, and other runtime settings are managed in the Settings UI and persisted in the database. Environment variables SERVER_NAME and SERVER_URL are used as initial seed values only — once set in the UI, database values take precedence.
See docs/development.md for development setup, project structure, and contribution guidelines.
Apache-2.0