omann.org

Parallel AI coding.
One board.

A Kanban-style workspace for OpenCode. Run multiple coding sessions, plans, and explorations side-by-side in a native macOS app.

SYMPHONY
API Project 3
Auth Service
Frontend
BUILD Update User Schema
···
You 10:42 AM
Add a `last_login` field to the User model and run the migration.
Assistant 10:42 AM
I'll update `models/user.py` and create a migration script.
class User(Model): id = fields.IntField(pk=True) email = fields.CharField(max_length=255) + last_login = fields.DatetimeField(null=True)
Running tests...
PLAN Refactor Auth
···
You 10:38 AM
Plan the switch to JWT auth.
Assistant 10:39 AM
Here is the implementation plan: 1. Install `pyjwt` dependency 2. Create `auth/jwt.py` utility 3. Update middleware to verify tokens 4. Create login endpoint returning tokens
Type a message...
EXPLORE Debug API Latency
···
You 10:15 AM
Why is the `/users` endpoint slow?
Assistant 10:16 AM
Found 3 potential issues: - N+1 query on `user.posts` - Missing index on `email` column - Serialization overhead in Pydantic
Type a message...

Kanban Organization

Break complex tasks into parallel streams. Organize your work into columns: one for building, one for planning, and one for exploring the codebase.

Workspace Tabs

Manage multiple projects in one window. Each tab represents a distinct project directory with its own set of sessions and unread state.

Unread Tracking

Never miss an AI response. Badges on tabs and panes show exactly where new code has been generated while you were working elsewhere.

Native macOS Feel

Built with Tauri for blazing speed. Full keyboard navigation (`Cmd+1-9`, `Cmd+D`, `Cmd+W`) and native text editing feel.

How it works

1. Open your workspace

Select a project folder. Symphony creates a dedicated tab for it.

2. Spawn agents

Create parallel panes. Ask one agent to write tests while another refactors the implementation.

3. Sync context

All agents share the same project context but work independently. Merge their changes when ready.

Project A
Project B
BUILD Refactor Auth Middleware
···
Assistant
I've updated `middleware.ts` to support the new token format.
export function auth(req, res, next) { - const token = req.headers.auth; + const token = parseBearer(req.headers); if (!token) return next(new Error('No token')); // ... }

Roadmap

  • Available: Kanban board & Multi-tab
  • Available: Unread tracking
  • Coming Soon: Multi-window support
  • Coming Soon: Drag-and-drop tabs
  • Coming Soon: Session history search

Ready to try it?

Symphony is currently in active prototype development.

Request Early Access