import { useState, type ReactNode, type ElementType } from 'react'; import { ChevronDown, ChevronRight, Rocket, Layers, Sparkles, GitBranch, FolderTree, Component, Settings, PlayCircle, Bot, LayoutGrid, Terminal, Palette, Keyboard, Cpu, Zap, Image, TestTube, Brain, Users, } from 'lucide-react'; interface WikiSection { id: string; title: string; icon: ElementType; content: ReactNode; } function CollapsibleSection({ section, isOpen, onToggle, }: { section: WikiSection; isOpen: boolean; onToggle: () => void; }) { const Icon = section.icon; return (
{isOpen && (
{section.content}
)}
); } function CodeBlock({ children, title }: { children: string; title?: string }) { return (
{title && (
{title}
)}
        {children}
      
); } function FeatureList({ items, }: { items: { icon: ElementType; title: string; description: string }[]; }) { return (
{items.map((item, index) => { const ItemIcon = item.icon; return (
{item.title}
{item.description}
); })}
); } export function WikiView() { const [openSections, setOpenSections] = useState>(new Set(['overview'])); const toggleSection = (id: string) => { setOpenSections((prev) => { const newSet = new Set(prev); if (newSet.has(id)) { newSet.delete(id); } else { newSet.add(id); } return newSet; }); }; const expandAll = () => { setOpenSections(new Set(sections.map((s) => s.id))); }; const collapseAll = () => { setOpenSections(new Set()); }; const sections: WikiSection[] = [ { id: 'overview', title: 'Project Overview', icon: Rocket, content: (

Automaker is an autonomous AI development studio that helps developers build software faster using AI agents.

At its core, Automaker provides a visual Kanban board to manage features. When you're ready, AI agents automatically implement those features in your codebase, complete with git worktree isolation for safe parallel development.

Think of it as having a team of AI developers that can work on multiple features simultaneously while you focus on the bigger picture.

), }, { id: 'architecture', title: 'Architecture', icon: Layers, content: (

Automaker is built as a monorepo with two main applications and shared libraries:

Key Technologies:

  • Electron + React + TanStack Router for cross-platform desktop support
  • Real-time communication via WebSocket for live agent updates
  • State management with Zustand for reactive UI updates
  • Claude Agent SDK for AI capabilities
  • Shared monorepo packages (@automaker/*) for code reuse
), }, { id: 'features', title: 'Key Features', icon: Sparkles, content: (
), }, { id: 'data-flow', title: 'How It Works (Data Flow)', icon: GitBranch, content: (

Here's what happens when you use Automaker to implement a feature:

  1. Create Feature

    Add a new feature card to the Kanban board with description and steps

  2. Feature Saved

    Feature saved to{' '} .automaker/features/{id}/feature.json

  3. Start Work

    Drag to "In Progress" or enable auto mode to start implementation

  4. Git Worktree Created

    Backend AutoModeService creates isolated git worktree (if enabled)

  5. Agent Executes

    Claude Agent SDK runs with file/bash/git tool access

  6. Progress Streamed

    Real-time updates via WebSocket as agent works

  7. Completion

    On success, feature moves to "waiting_approval" for your review

  8. Verify

    Review changes and move to "verified" when satisfied

), }, { id: 'structure', title: 'Project Structure', icon: FolderTree, content: (

The Automaker codebase is organized as follows:

{`automaker/ ├─ apps/ │ ├─ ui/ Frontend (React + Electron) │ │ └─ src/ │ │ ├─ routes/ TanStack Router pages │ │ ├─ components/ │ │ │ ├─ layout/ Layout components (sidebar, etc.) │ │ │ ├─ views/ View components (board, agent, etc.) │ │ │ ├─ dialogs/ Dialog components │ │ │ └─ ui/ shadcn/ui components │ │ ├─ store/ Zustand state management │ │ ├─ hooks/ Custom React hooks │ │ ├─ lib/ Utilities and helpers │ │ ├─ config/ App configuration files │ │ ├─ contexts/ React context providers │ │ ├─ styles/ CSS styles and theme definitions │ │ ├─ types/ TypeScript type definitions │ │ ├─ utils/ Utility functions │ │ ├─ main.ts Electron main process entry │ │ ├─ preload.ts Electron preload script │ │ └─ renderer.tsx React renderer entry │ │ │ └─ server/ Backend (Express) │ └─ src/ │ ├─ routes/ API endpoints │ ├─ services/ Business logic (AutoModeService, etc.) │ ├─ lib/ Library utilities │ ├─ middleware/ Express middleware │ ├─ providers/ AI provider implementations │ ├─ types/ TypeScript type definitions │ └─ index.ts Server entry point │ ├─ libs/ Shared packages (monorepo) │ ├─ types/ TypeScript type definitions │ ├─ utils/ Common utilities (logging, errors) │ ├─ prompts/ AI prompt templates │ ├─ platform/ Platform & path utilities │ ├─ model-resolver/ Claude model resolution │ ├─ dependency-resolver/ Feature dependency ordering │ └─ git-utils/ Git operations & parsing │ ├─ docs/ Documentation └─ package.json Workspace root `}
), }, { id: 'components', title: 'Key Components', icon: Component, content: (

The main UI components that make up Automaker:

{[ { file: 'layout/sidebar.tsx', desc: 'Main navigation with project picker and view switching', }, { file: 'views/board-view.tsx', desc: 'Kanban board with drag-and-drop cards', }, { file: 'views/agent-view.tsx', desc: 'AI chat interface for conversational development', }, { file: 'views/spec-view/', desc: 'Project specification editor with AI generation', }, { file: 'views/context-view.tsx', desc: 'Context file manager for AI context', }, { file: 'views/terminal-view/', desc: 'Integrated terminal with splits and tabs', }, { file: 'views/profiles-view.tsx', desc: 'AI profile management (model + thinking presets)', }, { file: 'store/app-store.ts', desc: 'Central Zustand state management', }, ].map((item) => (
{item.file} {item.desc}
))}
), }, { id: 'configuration', title: 'Configuration', icon: Settings, content: (

Automaker stores project configuration in the{' '} .automaker/ directory:

{[ { file: 'app_spec.txt', desc: 'Project specification describing your app for AI context', }, { file: 'context/', desc: 'Additional context files (docs, examples) for AI', }, { file: 'features/', desc: 'Feature definitions with descriptions and steps', }, ].map((item) => (
{item.file} {item.desc}
))}

Tip: App Spec Best Practices

  • Include your tech stack and key dependencies
  • Describe the project structure and conventions
  • List any important patterns or architectural decisions
  • Note testing requirements and coding standards
), }, { id: 'getting-started', title: 'Getting Started', icon: PlayCircle, content: (

Follow these steps to start building with Automaker:

  1. Create or Open a Project

    Use the sidebar to create a new project or open an existing folder

  2. Write an App Spec

    Go to Spec Editor and describe your project. This helps AI understand your codebase.

  3. Add Context (Optional)

    Add relevant documentation or examples to the Context view for better AI results

  4. Create Features

    Add feature cards to your Kanban board with clear descriptions and implementation steps

  5. Configure AI Profile

    Choose an AI profile or customize model/thinking settings per feature

  6. Start Implementation

    Drag features to "In Progress" or enable auto mode to let AI work

  7. Review and Verify

    Check completed features, review changes, and mark as verified

Pro Tips:

  • Use keyboard shortcuts for faster navigation (press{' '} ? to see all)
  • Enable git worktree isolation for parallel feature development
  • Start with "Quick Edit" profile for simple tasks, use "Heavy Task" for complex work
  • Keep your app spec up to date as your project evolves
), }, ]; return (
{/* Header */}

Wiki

Learn how Automaker works and how to use it effectively

{/* Content */}
{sections.map((section) => ( toggleSection(section.id)} /> ))}
); }