Dictate an idea.
Watch it ship.

Bombay turns voice notes into refined tasks, then implements them automatically. Speak to Siri, and code lands in a pull request.

pipeline.log
# Voice note captured via Siri
 "Add dark mode to the dashboard"

# Auto-refined by Claude
## Task: Add dark mode toggle
 Refined → Done when: theme persists across reload

# Auto-implemented on branch auto/add-dark-mode
 PR #42 created → awaiting review

From voice note to pull request

Five stages, fully automated. You just review at the end.

🎤
Capture
Dictate to Siri on any Apple device
🔄
Sync
Bombay exports to your project inbox
🔎
Refine
AI clarifies scope and success criteria
🤖
Implement
Claude Code writes and tests the code
🚀
Ship
PR created for your review

Everything at a glance

A real-time dashboard for all your projects and tasks.

Dashboard screenshot

Project overview

See every project's inbox count, recent commits, and service health in one view.

Task pipeline

Track tasks from unrefined through to built, with readiness states and roadmap tags.

Broadcast prompts

Send a Claude Code instruction to multiple projects simultaneously.

Under the hood

Plain Python services running as macOS LaunchAgents, bundled in a native app.

Inputs
Siri / Reminders
Notion
Project .in/
Core services
Reminder sync
Project watcher
Auto-work engine
Outputs
Dashboard
Pull requests
reminders.md

Before and after

What used to take 45 minutes of context-switching now happens while you sleep.

Without Bombay

~45 min
  1. Open Reminders, read the task
  2. Figure out which project it belongs to
  3. Write up requirements in a file
  4. Open the codebase, understand context
  5. Implement the feature or fix
  6. Create a PR and request review

With Bombay

~30 sec
  1. Tell Siri what you want

Bombay handles steps 2–6 automatically. You review the PR when it's ready.

Everything you need, nothing you don't

A focused toolkit for autonomous task orchestration.

🎤

Voice capture

Dictate reminders from any Apple device via Siri. They flow into your project inboxes automatically.

🔌

Smart routing

Tasks are matched to projects using configurable filters and AI confidence scoring.

🔎

Auto-refine

Vague ideas get clarified into actionable tasks with success criteria, scope, and context.

🤖

Auto-work

Refined tasks are picked up by Claude Code, implemented on branches, and submitted as PRs.

🔌

Connectors

Pull tasks from Notion databases and other sources. Extensible connector architecture.

🛰

Live dashboard

Real-time Nuxt 3 dashboard with WebSocket updates, project cards, and task management.

💻

Native Mac app

Bundled as a proper macOS application. Install the DMG, grant access, and you're done.

📡

Broadcast prompts

Send Claude Code instructions to multiple projects at once from the dashboard.

Up and running in two minutes

Install the app

Download the DMG, drag Bombay to Applications. All services are bundled inside — no Python setup, no terminal commands.

Grant access

Bombay asks for Reminders permission on first launch. Approve it once and you're set.

Open the dashboard

Visit localhost:8765 to see your projects, tasks, and pipeline status in real time.

Built for tinkerers

Straightforward Python, no magic. Easy to understand, extend, and integrate.

EventKit

Uses Apple's native EventKit framework via PyObjC for reliable, direct access to Reminders data.

WebSocket

Real-time communication between dashboard and backend. Live updates, no polling required.

Connector API

Extensible connector system for pulling tasks from Notion, GitHub Issues, and other sources.

Claude Code

Auto-work engine uses Claude to analyse, plan, implement, and test code changes autonomously.

LaunchAgent

Runs as proper macOS services via launchctl. Bundled inside the native app for zero-config setup.

Plain Python

Minimal dependencies. No web frameworks, no build step, no containers. Just Python and PyObjC.

Download Bombay

A Mac app. Open the DMG, drag Bombay to Applications, and you are in.

Download for Mac

This is a beta

Bombay is in active development. I am not looking for a polished first impression. I want to know what broke, what confused you, and what you expected. That is the most useful thing you can send.

Send feedback