Skip to content

ruucm/olly-molly

Repository files navigation

Olly Molly

Olly Molly

Your AI Development Team, Running Locally

Quick Start β€’ CLI Options β€’ Features β€’ How It Works β€’ Contributing

npm version license PRs welcome


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.

Quick Start

npx olly-molly

That's it. Open http://localhost:1234 and start managing your AI team.

Features

  • 🎯 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

AI Agents

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

Adding Custom Agents

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,
];

How It Works

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                      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                    β”‚
β”‚                                                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Setup

Prerequisites

Run with npx (Recommended)

npx olly-molly

On 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

CLI Options

olly-molly [options]

Server Settings

Flag Short Default Description
--port -p 1234 Server port
--host -H localhost Binding host
--no-open Disable auto browser open

Data/Path Settings

Flag Short Default Description
--data-dir -d ~/.olly-molly App data directory
--db-path <data-dir>/db Database path

Development

Flag Short Description
--dev Run in development mode (next dev)
--verbose -v Enable verbose logging

Advanced Options

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

Info

Flag Short Description
--version -V Show version and exit
--help -h Show help and exit

Environment Variables

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

Examples

# 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 --reset

Or install globally

npm install -g olly-molly
olly-molly

Development

git clone https://github.com/ruucm/olly-molly.git
cd olly-molly
npm install
npm run dev

AI CLI Tools (Required for Agent Execution)

To 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-code

Windows:

# 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-code

Note: Windows npm packages may not be officially supported. If installation fails, consider using WSL (Windows Subsystem for Linux) with Homebrew.

Project Selection

  1. Click "Select Project" in the header
  2. Add your project path (e.g., /Users/you/my-app)
  3. AI agents will work within that directory

Contributing

We love contributions! Here's how you can help:

Ways to Contribute

  • πŸ› 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

Development Setup

# 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:1234

Releasing a New Version

npm version major|minor|patch (or edit package.json)
git push origin main
scripts/build-prebuilt-macos.sh
npm publish
gh release create v0.3.70 dist/prebuilt/olly-molly-darwin-arm64.tar.gz

for windows:

powershell -ExecutionPolicy Bypass -File scripts/build-prebuilt-windows.ps1
gh release upload v0.3.70 dist/prebuilt/olly-molly-win32-x64.tar.gz --clobber

Project Structure

olly-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

Code Style

  • TypeScript for type safety
  • Functional components with hooks
  • CSS variables for theming
  • Minimal dependencies

Tech Stack

  • 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

Troubleshooting

App stuck on "Loading..."

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:

  1. Force quit browser β€” Completely close Chrome/browser and reopen
  2. Hard refresh β€” Cmd+Shift+R (Mac) or Ctrl+Shift+R (Windows)
  3. Close duplicate tabs β€” Make sure only one tab has Olly Molly open
  4. 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

License

MIT Β© ruucm


Built with ❀️ for developers who love AI

About

No description, website, or topics provided.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors