Skip to content
/

Stoneforge

stoneforge · stoneforge-ai/smithy · last commit 2026-02-01

Primitive shape 3 total
Subagents 3
00

Summary

Stoneforge — Summary

Stoneforge is an open-source multi-agent orchestration platform for AI coding agents, centered on a three-role architecture: a Director (strategic planner/task assigner), Workers (ephemeral or persistent agents that execute tasks in isolated git worktrees), and Stewards (merge reviewers that check CI status and handle integration). It ships as @stoneforge/smithy npm CLI with a sf binary and a web dashboard at localhost:3457. The platform features dependency-aware task dispatch via a daemon, a Kanban board with merge requests, plans/workflows, a workspace/terminal multiplexer, document management, channels/messaging, and performance metrics. It supports Claude Code, Codex, and OpenCode agents, with automatic merge and a dependency-aware dispatch daemon that prevents duplicated work and blocked starts. Apache 2.0, community project (source: stoneforge.ai, stoneforge-ai GitHub org).

Differs from seeds: Stoneforge introduces a named three-role hierarchy (Director/Worker/Steward) not found in any seed framework. The Steward role — dedicated merge reviewer — is architecturally novel: while superpowers has a verification-before-completion skill and Bernstein has a "janitor," the Stoneforge Steward is a long-running agent persona dedicated exclusively to merge management. The sf CLI + localhost:3457 web dashboard gives it a closer resemblance to Kagan (Python TUI + SQLite) but with a TypeScript/Node.js implementation. Unlike taskmaster-ai (task planning only), Stoneforge executes, reviews, and merges automatically.

01

Overview

Stoneforge — Overview

Origin

GitHub org: stoneforge-ai. npm package: @stoneforge/smithy. Website: stoneforge.ai. Apache 2.0. Version 0.1.0 at time of analysis. Active (last commit ~2026-02). No public GitHub star count found (repo may be private or at stoneforge-ai/smithy).

Philosophy

From the website:

"Orchestrate AI coding agents in parallel with multi-agent workflows. Run teams of AI coding agents with automatic merge, dependency-aware dispatch, and a real-time web dashboard."

The three-role model is Stoneforge's core innovation:

  • Director: Strategic agent that creates and assigns tasks to workers
  • Workers: Task-executing agents (ephemeral or persistent) in isolated worktrees
  • Stewards: Dedicated merge-review agents that check CI and handle integration

From the website's "Problem" section:

"Merge conflicts — Agents edit the same files on the same branch, creating constant conflicts." "Duplicated work — Two agents grab the same task, or one starts work that's blocked by another." "Zero visibility — You can't see what's happening until you check each terminal individually."

Stoneforge solves all three: worktree isolation eliminates merge conflicts, dependency-aware dispatch eliminates duplicate/blocked starts, and the web dashboard eliminates visibility gaps.

Latest Version

v1.16 mentioned on website ("Now with GitHub, Linear, and Notion sync").

Features (from website)

  • Terminal only → Web dashboard
  • Manual worktrees → Automatic worktrees
  • Lead assigns → Auto-dispatch daemon
  • Manual merge → Auto merge + test
  • Lead-mediated communication → Persistent channels
  • CLAUDE.md only → Versioned docs + search
  • Ad-hoc task lists → Resumable playbooks
  • Single plan → Multi-plan support
  • Claude only → Claude, OpenCode, Codex
02

Architecture

Stoneforge — Architecture

Distribution

npm install -g @stoneforge/smithy    # Install CLI globally
cd your-project && sf init            # Initialize .stoneforge workspace
sf serve                              # Start server + web dashboard at http://localhost:3457

Server Architecture

Stoneforge runs two server processes:

  • quarry-server — the main API server
  • smithy-server — derived server (appears to share routes via shared-routes package)

Runtime state stored in .stoneforge/ directory:

  • daemon-state.json — dispatch daemon persistence

Monorepo Structure

stoneforge/ (inferred from source references)
├── apps/
│   ├── smithy-server/     # API server
│   │   └── src/
│   │       ├── routes/    # Task, agent, merge, plan routes
│   │       ├── services/  # Business logic
│   │       └── daemon-state.ts  # Daemon state persistence
│   ├── quarry-server/     # (original server)
│   └── quarry-web/        # Web dashboard frontend
├── packages/
│   ├── shared-routes/     # Shared route factories
│   └── ...
└── .stoneforge/           # Runtime state dir
    ├── daemon-state.json  # Daemon running state
    └── ...

Required Runtime

  • Node.js 18+ (inferred from TypeScript + npm)
  • Git (worktree management)
  • AI agent CLIs (claude-code, codex, opencode)

Web Dashboard

http://localhost:3457/activity

Multi-section UI:

  • Overview, Activity, Inbox, Editor, Work/Tasks, Merge Requests, Plans, Workflows, Orchestration, Agents, Workspaces, Collaborate/Messages, Documents, Analytics/Metrics, Settings

Key Config

  • .stoneforge/ — runtime state
  • sf init creates initial workspace config
  • Agents section: configure Director, Workers (persistent/ephemeral), Stewards, Pools
03

Components

Stoneforge — Components

CLI Binary: sf (@stoneforge/smithy)

Command Purpose
sf init Initialize .stoneforge workspace directory
sf serve Start server + web dashboard at localhost:3457
sf document search "query" Search documentation
sf document create Create a documentation entry
sf document update Update a documentation entry
sf task create Create a task (also callable by agents)
sf show <task-id> Show task details
sf stats Show workspace statistics

Agent Roles (3 types)

Role Type Description
Director Long-running persistent Strategic planner that creates and assigns tasks. One per run.
Workers Ephemeral or persistent Execute assigned tasks in isolated git worktrees. Multiple per run.
Stewards Long-running persistent Monitor for completed tasks, check CI, handle merges. Usually 2.

Dashboard Sections

Section Purpose
Overview / Activity Live command center — active agents, recent completions
Tasks Kanban board (Backlog, In Progress, Awaiting Merge, Closed)
Merge Requests Review and merge completed agent work
Plans Multi-step plans tracking completion %
Workflows Workflow templates and active workflows
Orchestration / Agents Configure Director, Workers (Persistent/Ephemeral), Stewards, Pools
Workspaces Terminal multiplexer for agent sessions (4-pane grid)
Collaborate / Messages Channels + Direct Messages between agents and operator
Documents (Library) Versioned documentation with search
Analytics / Metrics Task completions, agent performance, task distribution
Inbox Pending messages, gate notifications
Editor Built-in code editor view
Settings Theme, notifications, agent defaults

MCP Integration

Not explicitly documented in the public site, but the sf task create command is used by agent tools — suggesting MCP or some API interface agents call to interact with Stoneforge from within their sessions.

05

Prompts

Stoneforge — Prompts

Public access to Stoneforge's actual prompt files was not available (the GitHub repo appears to be private or not yet public under stoneforge-ai). The following excerpts are reconstructed from the website's demo UI, which shows agent terminal output.

Verbatim Excerpt 1: Director Agent Terminal (from website demo)

The Director agent is shown with this behavior in the dashboard:

Director SF-42 Plan execution Dispatching task #14...

And in the Director detail panel, the Director is shown responding:

Already merged — the worker duplicated the endpoint into smithy-server. Now we need a follow-up task to consolidate: move the route to shared-routes and remove the duplicates from both servers.

Bash (sf task create --priority 2 --title "Move bulk task update/delete routes to shared-routes package" --description '...')
  Created task el-3xze

Created el-3xze (P2) — "Move bulk task update/delete routes to shared-routes package"

Prompting technique: The Director uses sf task create as a tool call to decompose its analysis into actionable tasks for workers. This is the prompt-chaining pattern in action: the Director's textual analysis becomes the --description argument to a new task, which workers then execute.


Verbatim Excerpt 2: Worker Agent Terminal (from website demo workspace view)

# Documentation — search
sf document search "query"
sf document search "query" --category spec --limit 10

# Documentation — create & update
sf document create --title "Doc Title" --content "..."
sf document update <doc-id> --content "..."

Workers are shown running these sf document commands to search and create documentation as part of task execution. The workspace view shows:

Worker ID: el-1j62
Director ID: el-39hd
3 TOOL CALLS (Bash) · 3 results
Agent is working...

Prompting technique: The workers are given sf CLI commands as their primary interface to the Stoneforge platform. This is the "tool-as-API" pattern — the orchestration platform exposes itself to agents via a CLI rather than via MCP tools (or in addition to them).

09

Uniqueness

Stoneforge — Uniqueness and Positioning

Differs from Seeds

Stoneforge introduces the most explicit three-role named hierarchy of any framework in this batch or the seeds: Director → Worker → Steward. No seed framework has a dedicated "Steward" role — a persistent agent whose sole job is merge management and CI gating.

Versus taskmaster-ai (closest seed in spirit — both manage task queues): Taskmaster creates and manages tasks but doesn't execute them or merge their output. Stoneforge executes, reviews, and merges automatically via the Steward agents.

Versus claude-flow (both run parallel workers): claude-flow uses LLM consensus protocols (hive-mind) for coordination; Stoneforge uses a deterministic dispatch daemon (like Bernstein) but with named role agents rather than a generic worker pool.

Versus agent-os and claude-conductor (Archetype 4 markdown scaffolds): Stoneforge is a full platform — not a CLAUDE.md template.

The document library (sf document search/create/update) as a persistent, versioned knowledge base accessible to all agents is not present in any seed framework. It's positioned as solving "CLAUDE.md only" → "Versioned docs + search."

Distinctive Features

  1. Director/Worker/Steward naming — clearest role taxonomy of any framework analyzed
  2. Steward as dedicated merge agent — novel role not seen elsewhere
  3. Persistent inter-agent channels — operators and agents communicate via DMs and channel history
  4. Document library with versioned docs and search — knowledge management for agent teams
  5. GitHub, Linear, Notion sync (v1.16) — external project management integration

Positioning

Stoneforge targets teams that want the parallelism benefits of multi-agent orchestration but need structured roles rather than ad-hoc agent coordination. The Director ensures there's always a strategic planner; Stewards ensure merge hygiene without requiring the operator to constantly monitor CI.

Observable Failure Modes

  1. Director as single point of failure: if the Director misdecomposes the goal, all downstream tasks are wrong.
  2. Steward race condition: the demo itself mentions fixing "non-atomic worker unassignment" — Steward concurrency may still have edge cases.
  3. Source not public: No public GitHub repo found for stoneforge-ai at time of analysis — limits community adoption and auditability.
  4. Node.js-only: server restart causes daemon state loss unless .stoneforge/daemon-state.json correctly tracks state (one file governs whether daemon auto-restarts).
04

Workflow

Stoneforge — Workflow

Phases

Phase Who Artifact
Init Operator: sf init .stoneforge/ directory
Start Director Operator: launch Director agent Director starts, decomposes goal into tasks
Dispatch Dispatch daemon Auto-assigns ready tasks to idle workers based on priority + dependencies
Execute Workers Each in isolated git worktree; commits work to branch agent/<worker>/<task-id>-...
Merge Review Stewards Check CI status, review diff, resolve conflicts, merge to main
Monitor Operator Web dashboard at localhost:3457

Dependency-Aware Dispatch

The dispatch daemon tracks task priorities and dependencies. Tasks marked as dependent on other tasks only dispatch when their prerequisites are complete. The Director creates tasks with dependency links; the daemon enforces ordering.

Approval Gates

Gate Type
Merge review (Steward checks CI) Automated (CI must pass)
Manual operator review (via Inbox/Messages) yes-no or file-review

The Stewards can merge automatically when CI passes, or route to operator Inbox for decisions on conflicts.

Plans

Multi-step plans track tasks as ordered groups with % completion. Plans are "resumable playbooks" — if interrupted, they can be resumed from the last completed step.

Git Automation

  • Creates worktree per task: agent/<worker-name>/<task-id>-<slug>main (automated)
  • Director creates tasks via sf task create
  • Stewards run CI checks before merging
  • Automatic merge to main when CI passes (Steward handles)
  • PR creation is supported via the "Merge Requests" section

Channels / Messaging

Agents communicate via persistent channels visible in the dashboard. Director can message workers directly; operator can reply. The dashboard shows channel history (e.g., "Director:bob-claude", "bob-claude:operator").

06

Memory Context

Stoneforge — Memory and Context

Platform-Level State

  • .stoneforge/daemon-state.json — dispatch daemon running state (persists across server restarts so daemon doesn't auto-restart after dev hot-reloads if intentionally stopped)
  • Task records (in-process, inferred — API server in Node.js)
  • Channels / message history (in-process or file-backed)

Document Library

Stoneforge has a built-in document management system accessible via sf document CLI. Agents can create, update, and search documentation within the workspace. This acts as persistent, searchable knowledge base across sessions.

sf document search "query" --category spec --limit 10
sf document create --title "Critical Gotchas" --content "..."

The demo shows a Documents section with 35 docs, versioned by date.

State Files (inferred)

  • .stoneforge/daemon-state.json — daemon on/off state
  • .stoneforge/ — other runtime state (task queue, agent assignments)
  • Git worktrees (per task, under agent/<worker>/<task-id> branch pattern)

Cross-Session Persistence

Yes — tasks, plans, merge requests, channels, and documents persist across server restarts. The demo shows 342 merged tasks and 219 completed tasks in the last 7 days, implying multi-session accumulation.

Agent Context

Each agent (Director, Worker, Steward) gets access to the Stoneforge CLI (sf) within its terminal session. Agents use sf task create, sf show, sf document search to interact with the platform's state. This is the cross-agent memory mechanism — agents read/write state via the sf CLI rather than a shared file.

07

Orchestration

Stoneforge — Orchestration

Pattern

Hierarchical with three named roles:

Director (1, persistent)
├── Decomposes goal into tasks
├── Creates tasks via `sf task create`
└── Monitors via channels

Workers (N, ephemeral or persistent)
├── Each in isolated git worktree
├── Execute assigned tasks
└── Communicate status via channels

Stewards (M, persistent, usually 2)
├── Monitor for tasks reaching "Awaiting Merge"
├── Check CI status
├── Resolve conflicts
└── Merge to main when ready

Dispatch Daemon

Background daemon that tracks task priorities and dependencies. Auto-assigns ready tasks (status=open, dependencies clear, priority ordered) to idle workers. Prevents duplicate work (atomic claim), prevents blocked starts (dependency check).

Daemon running → monitors task queue → assigns when dependencies clear

Isolation

Git worktrees — one per task. Branch pattern: agent/<worker-name>/<task-id>-<slug>.

Multi-Model Routing

Yes — each agent (Director, Workers, Stewards) independently configured. Website shows "Default Provider" selector in Settings. Examples show workers using claude code label; all workers in demo appear to use Claude Code.

Consensus Mechanism

None formally. Stewards independently check CI and merge — no quorum/raft. If two stewards review the same task, race conditions are possible (the demo mentions "Fix non-atomic worker unassignment" as a fixed issue, suggesting atomicity is a concern).

Concurrent Agents

Demo shows 6 active agents (4 workers + 2 stewards + 1 director). No stated maximum.

Execution Mode

Continuous daemon — the dispatch daemon runs persistently, assigning tasks as they become ready. Workers and Stewards run continuously monitoring the queue.

Cross-Tool Portability

Medium — explicitly supports Claude Code, Codex, OpenCode. Website comparison table mentions "Claude only → Claude, OpenCode, Codex" as the improvement from prior state.

Audit Log

Not confirmed. The Activity section shows an activity feed with events ("24 events"), but replay capability is unknown.

Prompt Chaining

Yes — Director's analysis is chained into Worker task descriptions via sf task create --description "...".

08

Ui Cli Surface

Stoneforge — UI and CLI Surface

CLI Binary: sf (@stoneforge/smithy)

Detail Value
Install npm install -g @stoneforge/smithy
Type Own runtime
Init sf init (creates .stoneforge/)
Serve sf serve (starts server + dashboard at localhost:3457)
Task mgmt sf task create, sf show, sf stats
Documents sf document search/create/update

Web Dashboard

Detail Value
URL http://localhost:3457/activity
Tech TypeScript/Node.js server + (inferred: React frontend in quarry-web/)

Dashboard sections:

  • Overview/Activity — live agent activity, recent completions
  • Inbox — pending gates and messages
  • Editor — built-in code editor with file tree
  • Work/Tasks — Kanban (Backlog / Unassigned / In Progress / Awaiting Merge / Closed)
  • Merge Requests — review queue with CI status
  • Plans — multi-step plan tracking with % completion
  • Workflows — template management
  • Orchestration/Agents — role configuration (Director, Workers, Stewards, Pools)
  • Workspaces — 4-pane terminal grid for agent sessions
  • Collaborate/Messages — channels + DMs between agents and operator
  • Documents/Library — versioned documentation with search
  • Analytics/Metrics — task completion graphs, agent performance, workload distribution
  • Settings — theme, notifications, agent defaults

Workspace Terminal Multiplexer

The Workspaces section provides a split-pane terminal view showing multiple agent sessions simultaneously (up to 4 panes in the demo). Each pane shows a specific agent (worker alice-claude, bob-claude, stewards m-steward-1, m-steward-2).

Integrations

v1.16 adds GitHub, Linear, and Notion sync. Previous versions may have supported fewer integrations.

Related frameworks

same archetype · same primary tool · same memory type

Claude-Flow / Ruflo ★ 55k

Eliminates single-agent context limits and sequential bottlenecks by orchestrating fault-tolerant swarms of specialized AI agents…

Hermes Agent (NousResearch) ★ 168k

Self-improving personal AI agent with closed learning loop, 7 terminal backends, and messaging gateway — not tied to any AI…

OpenCode ★ 165k

Terminal-first AI coding agent with multi-model routing, native desktop app, and a typed .opencode/ configuration system for…

OpenHands ★ 75k

Open-source AI software development platform (open-source Devin alternative) with Docker sandbox isolation, 77.6% SWE-bench…

DeerFlow ★ 70k

Long-horizon superagent that researches, codes, and creates by orchestrating parallel sub-agents with isolated contexts in Docker…

oh-my-openagent (omo) ★ 60k

Multi-provider AI agent orchestration for OpenCode: escape vendor lock-in by routing Sisyphus (Claude/Kimi/GLM) and Hephaestus…