* feat(ui): add responsive layouts to swimlane kanban content Mobile gets swipeable columns with tab navigation and touch-friendly drag sensors. Tablet gets 2-column horizontal scroll with snap. Desktop keeps the existing CSS grid layout. * feat(ui): add mobile task sheet and search bar components Bottom sheet (vaul Drawer) for task preview with Edit/Delete/Open Session actions. Compact search bar component for filtering tasks on mobile. * feat(ui): wire mobile components into kanban board Integrate MobileFab, MobileSearchBar, and MobileTaskSheet into the kanban board. Skip desktop preview panel on mobile — card taps open a bottom sheet instead of navigating directly. * refactor(ui): optimize swimlane container for mobile Hide swimlane headers for single workflow on mobile, remove horizontal padding on small screens. Extract filterTasks and WorkflowItem to keep the main component under the line limit. * test: add mobile kanban E2E tests 8 Playwright tests covering mobile layout, FAB, search, column tabs, bottom sheet, preview panel suppression, and swimlane header hiding. Adds mobile-chrome project (Pixel 5) to playwright config. * fix(ui): fix mobile E2E test failures in CI Exclude mobile tests from chromium project (wrong viewport), add startIndex to Embla carousel to fix initial scroll race condition, fix strict locator for menu heading, use first step for swimlane test. * fix(ui): fix create task dialog button layout on mobile Make StartTaskSplitButton full-width on mobile, hide dropdown chevron on small screens, and show a visible "Create only" button instead. * fix(ui): match header button sizes and add icon to create-only action Align hamburger menu button with changelog/health buttons by removing explicit h-10 w-10 override. Add IconPlus to "Create without starting agent" in both the desktop dropdown and mobile button. * fix(ui): address code review feedback for mobile kanban - Base hideHeaders on workflowFilter/total count, not filtered result - Clamp mobile column index via useMemo when steps change - Fix wrong assertion in preview panel test (was checking toBeVisible) - Separate altDisabled from splitDisabled (no agent needed for create-only) - Add visible plan mode button on mobile (was hidden behind dropdown) - Wait for mobile-kanban-layout in page object goto() - Extract computeBaseDisabled to reduce complexity * fix(test): fix flaky mobile E2E tests in headless Chrome - Use instant jump (scrollTo with jump=true) for tab-triggered carousel navigation instead of animated scroll that doesn't complete in headless - Add data-testid to swimlane header to avoid ambiguous Badge locator matching column tab buttons - Add timeout to viewport assertion for resilience * fix(ui): address review feedback and fix carousel reinitialization - Stabilize Embla options to prevent carousel reinit on tab change (startIndex was causing re-initialization, resetting scroll position) - Guard programmatic scrolls from triggering select callback revert - Remove PointerSensor from mobile DnD sensors (conflicts with touch) - Fix plan mode button using wrong disabled prop on mobile - Use literal name matching in columnTab locator (avoid regex injection) - Use toHaveCount(0) for stricter preview panel absence assertion * fix(ui): use pointerDown gating for carousel swipe sync Embla's scrollTo doesn't work in headless Chrome, causing the select event to fire with index 0 and reset the active tab. Fix by only syncing Embla→tabs on user-initiated pointer interactions (swipes), not on programmatic scrollTo calls. Update E2E test to verify tab active state instead of carousel viewport positions, which are unreliable in headless environments. * fix(test): add data-testid and data-active to column tabs Use explicit data attributes for more reliable test targeting instead of getByRole and CSS class assertions. * refactor(ui): use touch sensors for tablet and deduplicate getTasksForStep * fix(ui): improve spacing for stats and settings buttons in mobile menu
Kandev
Manage and run tasks in parallel. Orchestrate agents. Review changes. Ship value.
Workflows | Roadmap | Contributing | Architecture
What
Organize work across kanban and pipeline views with opinionated workflows and execute multiple tasks in parallel. Assign agents from any provider, and review their output in an integrated workspace - file editor, file tree, terminal, browser preview, and git changes in one place. Terminal agent TUIs are great for running agents, but reviewing and iterating on changes there doesn't scale.
Run it locally or self-host it on your own infrastructure and access it from anywhere via Tailscale or any VPN.
Open source, multi-provider, no telemetry, not tied to any cloud.
Vision
Humans stay in control. Define tasks, build agentic workflows with gates, review every change, decide what ships.
- Review-first - Humans support production systems. We need to understand (yet) and trust the code that gets deployed.
- Your workflow - Every team is different, and not every developer uses AI the same way. Define workflows once, share them across the team, and give everyone a consistent process for working with agents - regardless of experience level.
- Remote agents - Running multiple agents on a large codebase can quickly saturate a local machine. The goal is a single control plane: offload execution to servers, orchestrate from anywhere, including your phone.
Where this is heading
While agents can already plan, implement, test, and deploy autonomously with the right workflows, we don't yet trust their output enough for production-grade software without human review. Crossing that trust threshold will fundamentally transform our industry.
Features
- Multi-agent support - Claude Code, Codex, GitHub Copilot, Gemini CLI, Amp, Auggie, OpenCode
- Parallel task execution – start and manage multiple tasks from different sources simultaneously, boosting efficiency and productivity with AI agents.
- Integrated workspace - Built-in terminal, code editor with LSP, git changes panel, and chat in one IDE-like view
- Kanban task management - Drag-and-drop boards, columns, and workflow automation
- Agentic workflows - Multi-step pipelines that chain agents through automated task routing. See docs/workflows.md
- CLI passthrough - Drop into raw agent CLI mode for direct terminal interaction with any supported agent, leverage the full power of their TUIs
- Workspace isolation - Git worktrees prevent concurrent agents from conflicting
- Flexible runtimes - Run agents as local processes or in isolated Docker containers
- Session management - Resume and review agent conversations
- Stats - Track your productivity with stats on the completed tasks, agent turns, etc
Supported Agents
| Agent | Default Model | Other Models | Protocol |
|---|---|---|---|
| Claude Code | Sonnet 4.5 | Opus 4.6, Opus 4.5, Haiku 4.5 | stream-json |
| Codex | GPT-5.2 Codex | GPT-5.1 Codex Max, GPT-5.1 Codex Mini, GPT-5.2 | Codex |
| GitHub Copilot | GPT-4.1 | GPT-5.2, Claude Sonnet 4.5, Gemini 3 Pro, +10 more | Copilot SDK |
| Gemini CLI | Gemini 3 Flash | Gemini 3 Pro | ACP |
| Amp | Smart Mode | Deep Mode | stream-json |
| Auggie | Sonnet 4.5 | Opus 4.5, GPT-5.1, GPT-5, Haiku 4.5 (dynamic) | ACP |
| OpenCode | GPT-5 Nano | Claude Sonnet 4, Opus 4, etc (dynamic) | REST/SSE |
CLI Passthrough mode - we should be able to support any agent that has a CLI interface, even if they don't have an official API or SDK. The agent runs in a terminal session and we pass input/output through a websocket connection. If your agent isn't supported yet, open an issue or submit a PR with the integration. See Adding a New Agent CLI for a step-by-step guide.
Quick Start
Beta - Under active development. Expect rough edges and breaking changes. Contributions welcome! See CONTRIBUTING.md for details.
NPX (recommended)
npx kandev
This downloads pre-built backend + frontend bundles and starts them locally. The worktrees and sqlite db will be created in ~/.kandev by default. Should work on macOS, Linux, and Windows (WSL or native).
From Source
# Clone the repository
git clone git@github.com:kdlbs/kandev.git
cd kandev
# Start in production mode
make start
Prerequisites: Go 1.26+, Node.js 18+, pnpm, Docker (optional - needed for container runtimes)
High level architecture
graph LR
UI[Web UI] --> Backend
Backend["Backend (Orchestrator)"]
Backend --> W1 & W2
subgraph W1[Local Process]
Agent1[Agent CLI] --- WT1[Worktree]
end
subgraph W2[Docker Container]
Agent2[Agent CLI] --- WT2[Worktree]
end
We also want to add support for these remote runtimes:
- Remote SSH - run agents on remote servers over SSH, using docker or local processes with workspace isolation
- K8s operator - run agents in a Kubernetes cluster, with auto-scaling and resource management.
Development
Project Structure
apps/
├── backend/ # Go backend (orchestrator, lifecycle, agentctl, WS gateway)
├── web/ # Next.js frontend (SSR, Zustand, real-time subscriptions)
├── cli/ # CLI tool (npx kandev launcher)
└── packages/ # Shared UI components & types
Prerequisites
- Go 1.21+
- Node.js 18+
- pnpm
- Docker (optional)
Running Dev Servers
# Start everything (backend + frontend with auto ports)
make dev
# Or run separately
make dev-backend # Backend on :8080
make dev-web # Frontend on :3000
Testing & Linting
make test # Run all tests (backend + web)
make lint # Run all linters
make typecheck # TypeScript type checking
make fmt # Format all code
Pre-commit Hooks
# Install pre-commit (https://pre-commit.com/#install)
pipx install pre-commit
# Install git hooks
pre-commit install
Comparison to Other Tools
There are a few similar tools in this space, and new ones appearing everyday. Here's what sets this one apart:
- Server-first architecture - Not a desktop app. Runs as a server you can access from any device, including your phone. Start a task away from your computer and check in on it later.
- Remote runtimes - Run agents on remote servers and Docker hosts, not just your local machine.
- Multi-provider - Use Claude Code, Codex, Copilot, Gemini, Amp, Auggie, and OpenCode side by side. Not locked to one vendor.
- CLI passthrough and chat - Interact with agents through structured chat messages or drop into raw CLI mode for full agent TUI capabilities.
- Open source and self-hostable - No vendor lock-in, no telemetry, runs on your infrastructure.
Contributing
Contributions are welcome! Please read CONTRIBUTING.md before opening a PR.
See the issue tracker for open tasks.
Acknowledgments
Built with these excellent open-source projects:
Monaco Editor · Tiptap · xterm.js · dockview · CodeMirror · dnd-kit · Mermaid · Recharts · TanStack Table · Zustand · Shadcn/UI · Radix UI · Tailwind CSS