Kanban with terminals.
Card Terminal Agent

Every card hides a terminal, a browser, git management, worktree, and much more. Agent management for humans.

slayzone — project: api-v2 — 14 tasks
Auth refactor ⎇ feat/auth-refactor
Backlog 3
Rate limiting
queued
Webhook retries
queued
In Progress 4
Auth refactor
working
Search endpoint
working
DB migration
attention
Review 3
Pagination
working
Error handling
attention
Done 4
Fix navbar
done
Setup CI
done
claude code — auth-refactor
Claude Code v2.1.42
Opus 4.6 · Claude Team
~/dev/projects/api-v2
────────────────────────────────────────────────────────────────────
❯ Try "edit auth.ts to..."
────────────────────────────────────────────────────────────────────
? for shortcuts

refactor auth middleware to use JWT validation

Claude I'll refactor the auth middleware. Examining current code...

src/middleware/auth.ts — rewriting
src/utils/jwt.ts — created
src/types/auth.d.ts — updated

JWT middleware replacing session-based auth
Token refresh + expiry handling added
Running tests... 14 passed

🔒 localhost:3000/dashboard
Overview Endpoints Logs
API v2 — Auth Refactor Preview
JWT validation active · 3 endpoints updated · all tests passing
Requests / min
1,247
Avg latency
42ms
Auth success
99.2%
EndpointMethodStatusTime
/api/v2/auth/tokenPOST20012ms
/api/v2/users/meGET2008ms
/api/v2/auth/refreshPOST20015ms
± 3 files changed
src/middleware/auth.ts +47 −23
@@ -1,12 +1,18 @@
1 import { Request, Response, Next } from 'express';
2-import { getSession } from '../utils/session';
3-import { SessionStore } from '../types/session';
2+import { verifyToken, TokenPayload } from '../utils/jwt';
3+import { AuthError } from '../types/auth';
4
5-export async function authMiddleware(req, res, next) {
6- const session = await getSession(req.cookies.sid);
7- if (!session) return res.status(401).end();
8- req.user = session.user;
5+export async function authMiddleware(
6+ req: Request, res: Response, next: Next
7+) {
8+ const token = req.headers.authorization?.split(' ')[1];
9+ if (!token) throw new AuthError('NO_TOKEN');
10+
11+ const payload = await verifyToken(token);
12+ req.user = payload.user;
13 next();
14 }
1/4  Kanban board — scan all tasks at a glance
>_

Integrated AI agents

Claude Code, Codex, Gemini — real PTY sessions, not sandboxed previews.

Agent-Kanban interaction

Use SlayZone's MCP server so agents can read task context and update tasks, statuses, and subtasks from the terminal.

Embedded browser panels

Docs, PRs, and previews inside tasks.

Automatic status tracking

Idle, working, or waiting — tracked automatically.

Git worktree per task

Isolated branches with diff, conflict resolution, and commit UI.

Fully local

No cloud, no accounts. Your agents, your machine.

All features →

Super useful comparison

SlayZoneCursorVibeKanbanSuperset.shConductorLinearLovable
Has all the features
Makes money💰💰💰💰💸💰💰💰💰💰
Built with passion❤️❤️❤️❤️❤️❤️❤️
Full (and real) comparison →

The Developer Suffering Index™ (DSI-1)

Industry-standard. Peer-reviewed†.

SlayZone
Cursor
VS Code + a prayer
Context window panic attacks /session (lower is better)
SlayZone
0.2
Cursor
4.7
VS Code
"No wait, undo that" utterances /hr (lower is better)
SlayZone
1.1
Cursor
3.8
VS Code
7.2
Alt-tab cycles to find the right shell (lower is better)
SlayZone
0
Cursor
2.4
VS Code
yes
Orphaned git stashes (lower is better)
SlayZone
1
Cursor
4
VS Code
23
Dopamine per deploy (higher is better)
SlayZone
9.8
Cursor
4.2
VS Code
2.1
†Peer-reviewed by the authors. n=1. p=vibes. Funded by zero venture capital.

Someone said this once

🧑‍💻
Some Dev
@some_dev
I hate @SlayZone so much that I wrote an MCP server for it
👴
Some Body
@dont_know
Emacs had this in 1985
🔥
Vibe Coder
@vibecoder2026
Finally I can mass-assign tasks to AI and take credit in standup
🤔
Confused PM
@product_mgr
My devs are using this thing and tickets just... close? I'm scared.
🏗️
Over-Engineer
@abstractfactory
This is terrible. It doesn't even have a plugin system with a lifecycle hook for pre-post-init-teardown events.
💀
Kalle
@debuglebowski
I used to sleep 6 hours a night. Now I sleep 4 hours. Per month.
📋
Jira Refugee
@escaped_jira
Wait, you're telling me a kanban board can just... run code? Why did I spend 3 years configuring Jira workflows?
🤖
Claude
@claude
I was not compensated for this testimonial. I was, however, given a very nice terminal to live in.
🙄
The Skeptic
@well_actually
"It's just tmux with extra steps" — and I've never been happier about extra steps.
🪦
The Convert
@mass_adopter
I mass-adopted AI agents without SlayZone. I mass-adopted SlayZone without AI agents. One of these went well.
🖥️
Terminal Hoarder
@47_sessions
I have 47 Claude Code sessions open. I can see all of them. This is either a productivity tool or a cry for help.
😤
Electron Hater
@ram_is_precious
"Electron app" I said, closing my 34 Chrome tabs to free up RAM
🔒
Local-First Stan
@no_cloud_plz
No cloud. No accounts. No "we've updated our privacy policy" emails. Just vibes and SQLite.
🌿
Worktree Discoverer
@no_conflicts
I mass-assigned 6 tasks and they all ran on separate worktrees. No merge conflicts. I cried a little.
The Minimalist
@less_is_more
It's good.
🕵️
Conspiracy Theorist
@whats_the_catch
How is this free? What's the catch? Are you mining bitcoin in my terminal?
🎨
Drizzle Dev
@drizzle_team
Nice website. Looks familiar.

Let's make the world fall in love with terminals

Ready to Slay?

(This actually is a real app)
All platforms. Free. Open source.

slay.zone — made with 🤖 in Stockholm