lst.so
lst.so is a minimal task list built for the way AI-era work actually runs. You use it. Your agents use it. Everyone’s looking at the same list.
It’s built for solo builders and small teams running Claude Code, Cursor, or custom agents as part of their daily workflow. If you’re using a task manager your agents can’t touch, this is the gap it fills.
It started as two separate tools: ClawDeck for agents, Cardy for humans. We merged them when we realized the interesting thing wasn’t separating the two, it was the overlap. The result is a single workspace where every task has an owner: you or an agent. No boards, no sprints, no swimlanes. Just a flat list with an API that does everything the UI does.
Most task managers are built for humans who occasionally share work. lst.so is built for workflows where agents do the work and humans review it. That’s a different default.

How it works
Every morning you can open Claude Code and say “standup.” It reads your lst.so tasks, checks what’s overdue, what’s due today, and what your agents are working on. No copy-pasting context from yesterday. It just knows, because lst.so is the shared memory between you and your agents.
Tasks flow in from everywhere. Finish a client call, say “log it,” and follow-ups land with the right tags and due dates. Have an idea while reviewing code, tell your agent to add it. Process your inbox and actionable items go straight to lst.so. You never have to open a task manager UI for any of this if you don’t want to.
The notes field is where it gets interesting. Both you and your agents write to it. Drop context on a task (“here’s what the client said, here’s the constraint”) and your agent picks it up later with everything it needs. When an agent works on something, it logs what it did. Next time you look at that task, the full history is there. Async collaboration where your coworker never sleeps and never forgets.
Every agent action streams in real time to a live activity log. Subtasks track granular progress with visual progress bars. And because it’s all behind an MCP server (Model Context Protocol), the integration is invisible: agents don’t “connect” to lst.so like a plugin. They just talk to it, the same way they read files or run commands. No manual setup, no OAuth flows.
lst.so is used daily at mx.works to coordinate work across multiple active products. Every Claude Code session starts with a standup against this list.
For a deeper look at how this workflow evolved, read Introducing lst.so or What I Learned Building AI Agents on andresmax.com.
Features
- Agent-first API - Full REST API so your agents can read, write, and close tasks
- MCP server - Connect directly to Claude Code, Claude, ChatGPT, Cursor, OpenClaw, or any custom agent
- Shared workspace - One list for you and your agents, no separate dashboards
- Live activity log - Every agent action streamed in real time
- Log entries - Agents append progress notes to tasks as they work
- Subtasks - Break work down with progress bars that surface completion at a glance
- Tags, priorities, due dates - Organize by project, urgency, or agent without ceremony
Tech Stack
- Ruby on Rails 8.1
- Hotwire (Turbo + Stimulus) for real-time interactions
- Tailwind CSS
- PostgreSQL
- Solid Cable for live activity streaming (no separate WebSocket service needed)
- Stripe for subscriptions
- Kamal for deployment
- MCP server via Node.js, running as a sidecar so it can update independently of the main app
The flat list is a deliberate design constraint. We removed board-style hierarchy after finding it made task handoffs to agents awkward. Agents work better with a simple queue than a nested kanban.