Skip to content

astoreyai/goblin-forge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

59 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Goblin Forge

"Where code is forged by many small minds."

Goblin Forge (gforge) is a multi-agent command-line orchestrator designed to coordinate and execute multiple coding-focused CLI agents in parallel.

     ╔═══════════════════════════════════════════════════════════════╗
     β•‘                                                               β•‘
     β•‘   β–‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–‘β–‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–‘β–ˆβ–ˆβ•—β–‘β–‘β–‘β–‘β–‘β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ•—β–‘β–‘β–ˆβ–ˆβ•—               β•‘
     β•‘   β–ˆβ–ˆβ•”β•β•β•β•β•β–‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β–‘β–‘β–‘β–‘β–‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ•—β–‘β–ˆβ–ˆβ•‘               β•‘
     β•‘   β–ˆβ–ˆβ•‘β–‘β–‘β–ˆβ–ˆβ•—β–‘β–ˆβ–ˆβ•‘β–‘β–‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•¦β•β–ˆβ–ˆβ•‘β–‘β–‘β–‘β–‘β–‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘               β•‘
     β•‘   β–ˆβ–ˆβ•‘β–‘β–‘β•šβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β–‘β–‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β–‘β–‘β–‘β–‘β–‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•‘               β•‘
     β•‘   β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•¦β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β–‘β•šβ–ˆβ–ˆβ–ˆβ•‘               β•‘
     β•‘   β–‘β•šβ•β•β•β•β•β•β–‘β–‘β•šβ•β•β•β•β•β–‘β•šβ•β•β•β•β•β•β–‘β•šβ•β•β•β•β•β•β•β•šβ•β•β•šβ•β•β–‘β–‘β•šβ•β•β•               β•‘
     β•‘                                                               β•‘
     β•‘   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–‘β–‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—                   β•‘
     β•‘   β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•β•β•β–‘β–ˆβ–ˆβ•”β•β•β•β•β•                   β•‘
     β•‘   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–‘β–‘β–ˆβ–ˆβ•‘β–‘β–‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘β–‘β–‘β–ˆβ–ˆβ•—β–‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–‘β–‘                   β•‘
     β•‘   β–ˆβ–ˆβ•”β•β•β•β–‘β–‘β–ˆβ–ˆβ•‘β–‘β–‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β–‘β–‘β•šβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•β–‘β–‘                   β•‘
     β•‘   β–ˆβ–ˆβ•‘β–‘β–‘β–‘β–‘β–‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘β–‘β–‘β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—                   β•‘
     β•‘   β•šβ•β•β–‘β–‘β–‘β–‘β–‘β–‘β•šβ•β•β•β•β•β–‘β•šβ•β•β–‘β–‘β•šβ•β•β–‘β•šβ•β•β•β•β•β•β–‘β•šβ•β•β•β•β•β•β•                   β•‘
     β•‘                                                               β•‘
     β•‘           Multi-Agent CLI Orchestrator for Linux              β•‘
     β•‘                                                               β•‘
     β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

Status: v1.0.0 Complete

All 8 phases implemented:

  • Phase 1: Foundation (CLI, Config, Storage)
  • Phase 2: Isolation Layer (tmux, git worktrees)
  • Phase 3: Agent System (Registry, Adapters)
  • Phase 4: TUI Dashboard (Bubble Tea)
  • Phase 5: Template System (40+ templates)
  • Phase 6: Voice Control (Whisper STT)
  • Phase 7: Integrations (GitHub, Linear, Jira)
  • Phase 8: Polish & Release

Features

  • Multi-Agent Orchestration: Run Claude, Aider, Codex, and other AI agents simultaneously
  • Complete Isolation: Each "goblin" gets its own tmux session and git worktree
  • TUI Dashboard: htop-like interface for monitoring and managing goblins
  • Voice Control: Speak commands using Whisper STT (local, no cloud)
  • Template System: 40+ project templates with auto-detection
  • Integrations: GitHub, Linear, Jira for issue import and PR creation
  • Editor Support: Launch VS Code, Vim, Emacs directly to goblin worktrees

Quick Start

# Build
make build

# Or install locally
make install

# Check version
gforge version

# Scan for installed agents
gforge agents scan

# Spawn a goblin (agent instance)
gforge spawn coder --agent claude --project ./my-app

# List active goblins
gforge list

# Attach to a goblin
gforge attach coder

# Launch dashboard
gforge top

Installation

Requirements

  • Linux (primary platform)
  • Go 1.22+ (for building from source)
  • tmux (for session isolation)
  • git (for worktree isolation)
  • One or more AI coding CLIs (claude, aider, etc.)

Build from Source

git clone https://github.com/astoreyai/goblin-forge.git
cd goblin-forge
make install

Usage

Basic Commands

# Spawn a new goblin
gforge spawn <name> --agent <agent> [--project <path>] [--branch <name>]

# List all goblins
gforge list

# Attach to a goblin's tmux session
gforge attach <name>

# View goblin output
gforge logs <name>

# Show changes made by a goblin
gforge diff <name>

# Stop a goblin gracefully
gforge stop <name>

# Kill a goblin forcefully
gforge kill <name>

# Launch TUI dashboard
gforge top

Working with Issues

# Spawn from GitHub issue
gforge spawn coder --from-issue gh:owner/repo#123

# Spawn from Linear ticket
gforge spawn coder --from-issue linear:PROJ-456

# Spawn from Jira issue
gforge spawn coder --from-issue jira:PROJ-789

Voice Control

# Start voice daemon (requires faster-whisper)
gforge voice start

# Voice commands:
#   "Spawn coder with agent Claude"
#   "Attach to goblin reviewer"
#   "Show diff for tester"
#   "List all goblins"

Templates

# List available templates
gforge templates list

# Auto-detect project type
gforge templates detect

40+ templates included: Node.js, Python, Rust, Go, Ruby, Elixir, Java, .NET, and frameworks like Next.js, FastAPI, Django, Rails, Phoenix.

TUI Dashboard

Launch with gforge top:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  GOBLIN FORGE v1.0.0                              🎀 Voice: OFF   q: quit  β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  GOBLINS (3)                           β”‚  OUTPUT: coder [Claude]           β”‚
β”‚  ────────────────────────────────────  β”‚  ─────────────────────────────────│
β”‚  β–Ά 1. coder        [Claude]   RUNNING  β”‚  Analyzing the authentication     β”‚
β”‚    2. reviewer     [Aider]    PAUSED   β”‚  module for potential issues...   β”‚
β”‚    3. tester       [Codex]    IDLE     β”‚                                   β”‚
β”‚                                                                             β”‚
β”‚  n:spawn  a:attach  d:diff  k:kill  p:pause  r:resume  tab:switch  ?:help β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Keybindings:

  • j/k, ↑/↓ - Navigate goblin list
  • a, Enter - Attach to selected goblin
  • s - Stop selected goblin
  • K (Shift+K) - Kill selected goblin
  • d - Show diff
  • ? - Show help
  • q - Quit

Supported Agents

Agent Command Description
Claude Code claude Anthropic Claude Code CLI
Aider aider AI pair programming
Codex codex OpenAI Codex CLI
Gemini gemini Google Gemini CLI
Ollama ollama Local LLMs (CodeLlama, DeepSeek, Qwen)
Custom Any CLI Via generic adapter

Configuration

Config file: ~/.config/gforge/config.yaml

general:
  default_agent: claude
  worktree_base: ~/.local/share/gforge/worktrees

tmux:
  socket_name: gforge

git:
  branch_prefix: "gforge/"
  branch_style: kebab-case

voice:
  model: tiny  # tiny, base, small, medium, large
  device: auto # cpu, cuda, auto
  hotkey: KEY_SCROLLLOCK

Project Structure

goblin-forge/
β”œβ”€β”€ cmd/gforge/           # CLI entrypoint
β”œβ”€β”€ internal/
β”‚   β”œβ”€β”€ agents/           # Agent definitions and registry
β”‚   β”œβ”€β”€ config/           # Configuration management
β”‚   β”œβ”€β”€ coordinator/      # Goblin lifecycle management
β”‚   β”œβ”€β”€ integrations/     # GitHub, Linear, Jira, Editor
β”‚   β”œβ”€β”€ ipc/              # Voice daemon IPC
β”‚   β”œβ”€β”€ logging/          # Structured logging
β”‚   β”œβ”€β”€ storage/          # SQLite persistence
β”‚   β”œβ”€β”€ template/         # Template engine
β”‚   β”œβ”€β”€ tmux/             # Session management
β”‚   β”œβ”€β”€ tui/              # Bubble Tea dashboard
β”‚   └── workspace/        # Git worktree management
β”œβ”€β”€ templates/builtin/    # 40+ project templates
β”œβ”€β”€ voice/                # Python voice daemon
β”œβ”€β”€ CLAUDE.md             # Architecture documentation
β”œβ”€β”€ IMPLEMENTATION_PLAN.md # 8-phase roadmap
└── Makefile

Development

# Download dependencies
make deps

# Run tests
make test

# Run with coverage
make coverage

# Format code
make fmt

# Run linter
make lint

# Build for all platforms
make build-all

Documentation

License

Apache-2.0

About

Goblin Forge - Multi-agent CLI orchestrator for Linux. Spawn and coordinate multiple AI coding agents (Claude, Codex, Gemini, Ollama) in parallel with tmux isolation and git worktrees.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors