Your AI Development Team, Running Locally
Quick Start β’ CLI Options β’ Features β’ How It Works β’ Contributing
Olly Molly is a local-first AI development team manager. Assign tasks to AI agents (PM, Frontend, Backend, QA) and watch them work on your codebaseβall from a beautiful kanban board interface.
npx olly-mollyThat's it. Open http://localhost:1234 and start managing your AI team.
- π― Kanban Board β Drag-and-drop task management
- π€ AI Agents β PM, Frontend Dev, Backend Dev, QA, DevOps, Bug Hunter
- π¬ Natural Requests β Ask PM in plain language, get structured tickets
- π Local-First β Everything runs on your machine
- π¨ Minimal Design β Clean, paper-like UI inspired by fontshare.com
- π Dark Mode β Easy on the eyes
Olly Molly comes with 6 specialized AI agents, each designed for specific development tasks:
| Agent | Role | Description |
|---|---|---|
| π PM Agent | Project Manager | Creates tickets, assigns tasks, sets priorities, tracks progress |
| π¨ Frontend Developer | FE_DEV | React/Next.js UI development, responsive design, API integration |
| βοΈ Backend Developer | BACKEND_DEV | REST APIs, database design, server-side logic, testing |
| π QA Engineer | QA | Automated testing with Chrome DevTools/Playwright MCP, bug reporting |
| π DevOps Engineer | DEVOPS | CI/CD pipelines, deployment, infrastructure, monitoring |
| π Bug Hunter | BUG_HUNTER | Full-stack debugging, error analysis, regression testing |
Create a new file in agents/ directory:
// agents/my-agent.ts
import type { AgentDefinition } from './types';
export const myAgent: AgentDefinition = {
id: 'my-agent-001',
role: 'MY_ROLE',
name: 'My Custom Agent',
avatar: 'π€',
profile_image: null,
system_prompt: `Your agent's system prompt here...`,
is_default: 1,
can_generate_images: 0,
can_log_screenshots: 0,
};Then add it to agents/index.ts:
import { myAgent } from './my-agent';
export const DEFAULT_AGENTS: AgentDefinition[] = [
// ... existing agents
myAgent,
];βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Olly Molly β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β You βββΆ PM Agent βββΆ Creates Tickets β
β β β
β βΌ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β TODO β PROGRESS β REVIEW β DONE β HOLD β β
β β π β π β π β β
β βΈοΈ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β βΌ β
β Agents (FE/BE/QA) work on assigned tickets β
β β β
β βΌ β
β Code changes in YOUR local project β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Node.js 18+
- One of the following CLI tools: Codex CLI, OpenCode, or Claude CLI
npx olly-mollyOn macOS (arm64/x64) and Windows x64, npx olly-molly will use prebuilt bundles
from GitHub Releases when available. Asset naming:
olly-molly-darwin-arm64.tar.gz
olly-molly-darwin-x64.tar.gz
olly-molly-win32-x64.tar.gz
olly-molly [options]| Flag | Short | Default | Description |
|---|---|---|---|
--port |
-p |
1234 |
Server port |
--host |
-H |
localhost |
Binding host |
--no-open |
Disable auto browser open |
| Flag | Short | Default | Description |
|---|---|---|---|
--data-dir |
-d |
~/.olly-molly |
App data directory |
--db-path |
<data-dir>/db |
Database path |
| Flag | Short | Description |
|---|---|---|
--dev |
Run in development mode (next dev) |
|
--verbose |
-v |
Enable verbose logging |
| Flag | Description |
|---|---|
--reset |
Reset all app data (with confirmation prompt) |
--export-db <path> |
Export database to tar.gz file |
--import-db <path> |
Import database from tar.gz file |
| Flag | Short | Description |
|---|---|---|
--version |
-V |
Show version and exit |
--help |
-h |
Show help and exit |
You can also configure Olly Molly using environment variables (CLI arguments take priority):
| Variable | Description |
|---|---|
OLLY_MOLLY_PORT |
Server port |
OLLY_MOLLY_HOST |
Binding host |
OLLY_MOLLY_DATA_DIR |
App data directory |
OLLY_MOLLY_DB_PATH |
Database path |
# Start with defaults (port 1234, auto-open browser)
npx olly-molly
# Use custom port
npx olly-molly -p 3000
# Bind to all interfaces (for network access)
npx olly-molly --host 0.0.0.0
# Run in development mode with verbose logging
npx olly-molly --dev -v
# Disable auto browser open
npx olly-molly --no-open
# Export database for backup
npx olly-molly --export-db backup.tar.gz
# Import database from backup
npx olly-molly --import-db backup.tar.gz
# Reset all app data
npx olly-molly --resetnpm install -g olly-molly
olly-mollygit clone https://github.com/ruucm/olly-molly.git
cd olly-molly
npm install
npm run devTo run AI agents, you need to install Codex CLI, OpenCode, or Claude CLI:
macOS (via Homebrew):
# OpenCode
brew install sst/tap/opencode
# Codex CLI
npm install -g @openai/codex
# Claude CLI
brew install anthropics/tap/claude-codeWindows:
# OpenCode (via npm)
npm install -g opencode-ai
# Codex CLI (via npm)
npm install -g @openai/codex
# Claude CLI (via npm)
npm install -g @anthropic-ai/claude-codeNote: Windows npm packages may not be officially supported. If installation fails, consider using WSL (Windows Subsystem for Linux) with Homebrew.
- Click "Select Project" in the header
- Add your project path (e.g.,
/Users/you/my-app) - AI agents will work within that directory
We love contributions! Here's how you can help:
- π Bug Reports β Found a bug? Open an issue
- π‘ Feature Requests β Have an idea? Let's discuss
- π§ Pull Requests β Code contributions are welcome
- π Documentation β Help improve our docs
- π¨ Design β UI/UX improvements
# Clone the repo
git clone https://github.com/ruucm/olly-molly.git
cd olly-molly
# Install dependencies
npm install
# Start development server
npm run dev
# Open http://localhost:1234npm version major|minor|patch (or edit package.json)git push origin mainscripts/build-prebuilt-macos.sh
npm publishgh release create v0.3.70 dist/prebuilt/olly-molly-darwin-arm64.tar.gzfor windows:
powershell -ExecutionPolicy Bypass -File scripts/build-prebuilt-windows.ps1gh release upload v0.3.70 dist/prebuilt/olly-molly-win32-x64.tar.gz --clobberolly-molly/
βββ agents/ # AI agent definitions
β βββ index.ts # Agent exports & DEFAULT_AGENTS
β βββ types.ts # AgentDefinition type
β βββ pm.ts # PM Agent
β βββ fe-dev.ts # Frontend Developer
β βββ be-dev.ts # Backend Developer
β βββ qa.ts # QA Engineer
β βββ devops.ts # DevOps Engineer
β βββ bug-hunter.ts # Bug Hunter
βββ app/ # Next.js app router
β βββ api/ # API routes
β βββ design-system/ # Design system docs
β βββ page.tsx # Main dashboard
βββ components/ # React components
β βββ kanban/ # Kanban board
β βββ ui/ # Reusable UI components
β βββ ...
βββ db/ # SQLite schemas
βββ lib/ # Utilities
- TypeScript for type safety
- Functional components with hooks
- CSS variables for theming
- Minimal dependencies
- Framework: Next.js 16
- UI: React 19, Tailwind CSS 4
- Database: TanStack DB (@tanstack/react-db) with IndexedDB persistence
- Drag & Drop: dnd-kit
- AI: Codex CLI / OpenCode / Claude CLI
This is usually caused by IndexedDB lock. IndexedDB allows only one connection per database at a time, and if a previous browser session didn't close properly, the lock may persist.
Solutions:
- Force quit browser β Completely close Chrome/browser and reopen
- Hard refresh β
Cmd+Shift+R(Mac) orCtrl+Shift+R(Windows) - Close duplicate tabs β Make sure only one tab has Olly Molly open
- Clear site data β DevTools β Application β Storage β Clear site data
Why this happens:
- Browser crashed or was force-quit while the app was running
- Multiple tabs trying to access the same IndexedDB
- Browser extension interfering with IndexedDB
MIT Β© ruucm
Built with β€οΈ for developers who love AI