MCPcopy Index your code
hub / github.com/changkun/wallfacer

github.com/changkun/wallfacer @v0.0.13

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.0.13 ↗ · + Follow
7,075 symbols 40,849 edges 856 files 4,171 documented · 59% updated todayv0.0.15 · 2026-07-06★ 76
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Wallfacer

Full autonomy when you trust it. Full control when you don't.

Go Release License Coverage Stars Last Commit

Wallfacer is an autonomous engineering platform that works across multiple levels of abstraction. Start with a conversation when you're exploring an idea. Move to specs when the shape becomes clear. Track tasks when it's time to execute. Drop into code when you need precision. Agents operate at every level, and you decide how much freedom they get.

Open source. Runs locally. No IDE lock-in. No cloud dependency. Bring your own LLM provider.

Task board
Task board: coordinate parallel agent execution
Plan mode
Plan mode: design before you build

Why Wallfacer

Every AI coding tool today pins you to one interaction mode. Chat-based tools are fast but lose structure at scale. Spec-driven tools add discipline but slow you down on day one. Task boards help you coordinate but don't understand your architecture. Wallfacer connects all of these into a continuous workflow.

Adaptive abstraction. Chat for greenfield exploration, specs for complex systems (a recursive tree of markdown specs that agents read, iterate on, break down, and dispatch as tasks), tasks for parallel execution, code for surgical edits. Move between levels as your project evolves.

Autonomy spectrum. Run the full loop autonomously (implement, test, commit, push) or step in at any point. Dial autonomy up or down per task, per spec, per project.

Spec as intermediate representation. Ideas don't go straight to code. They become structured specs that agents can reason about, iterate on, and implement against. Specs are versioned and reviewable.

Per-task git worktrees. Each task works in its own git worktree for safe parallel execution. Multiple agents work simultaneously without stepping on each other.

Operator visibility. Live logs, traces, timelines, diff review, and usage and cost tracking. A full audit trail from idea to merged code.

Self-development. Wallfacer builds Wallfacer. Most recent capabilities were developed by the system itself.

Harness flexibility. Works with Claude Code, Codex, Cursor, OpenCode, and Pi through a pluggable harness layer. Pick one per task or per agent role; not locked to any single provider.

Quick Start

Install:

curl -fsSL https://raw.githubusercontent.com/changkun/wallfacer/main/install.sh | sh

Check prerequisites:

wallfacer doctor

Start the server:

wallfacer run                    # execs your chosen harness CLI directly as a host process

A browser window opens automatically. Add your Claude credential (OAuth token via claude setup-token, or API key from console.anthropic.com) in Settings. See Getting Started for the full walkthrough.

Other commands: wallfacer status (print or watch board state), wallfacer spec (validate or scaffold specs), and wallfacer auth (cloud sign-in). Run wallfacer <command> -help for flags.

How It Works

  1. Explore. Describe what you want to build in chat. Wallfacer helps you shape the idea.
  2. Specify. The idea becomes a structured spec. Iterate on it until the design is right.
  3. Execute. Specs break into tasks on a board. Agents implement, test, and commit in isolated git worktrees.
  4. Ship. Reviewed changes merge automatically. Auto-commit, auto-push, and auto-build when you're ready.
flowchart LR
    Idea([Idea]) --> Chat[Planning Chat]
    Chat --> Spec[Root Spec]
    Spec --> BreakDown[Break Down]
    BreakDown --> Leaves[Leaf Specs]
    Leaves --> Tasks[Dispatched Tasks]
    Tasks --> Commits([Commits])

The Autonomy Spectrum

Wallfacer lets you work at whichever abstraction level fits the problem, and move between them as the shape becomes clearer.

graph LR
    Chat[Chat

exploratory] --> Spec[Spec

structured design]
    Spec --> Task[Task

scoped execution]
    Task --> Code[Code

surgical edits]

Move left for more freedom and lower commitment; move right for more precision and higher commitment. Agents operate at every level, and autonomy dials up or down independently at each one. Specs move through a seven-state lifecycle (vague to drafted to validated to testing to complete, with stale and archived off to the side), and the planning chat exposes slash commands like /create, /validate, /break-down, and /dispatch to drive them.

Read more: Concepts, Plan, and Chat.

How execution is structured

Wallfacer runs every task through a small, composable set of primitives:

  • Agents are sub-roles (impl, test, commit-msg, title, oversight), each with a harness pin (Claude, Codex, Cursor, OpenCode, or Pi), capabilities, and an optional system prompt.
  • Flows compose agents into an ordered pipeline. The built-in is implement.
  • Tasks pick a flow; the runner walks the flow's step chain.
  • Routines spawn tasks against a flow on a schedule. A scheduled routine running an ordinary prompt covers recurring idea generation.

User-authored agents and fleets live as YAML under ~/.wallfacer/{agents,flows}/ and are edited on the unified Agent Graph surface (the old Agents and Flows pages merged into it). Clone a built-in to pin it to a harness, override its system prompt, or insert a review step, without restarting the server. Task prompts are refined in place from Plan mode.

Read more: Agent Graph.

Product Tour

Task board: managed execution

The board (shown above) coordinates many agent tasks at once. Drag cards across the lifecycle, batch-create with dependency wiring, refine prompts before execution, and let autoimplement promote backlog items as capacity opens. Each task runs as a host process in its own git worktree.

Plan mode: structured design

Design before you build (shown above). The three-pane plan view gives you an explorer tree (left), a focused markdown view (center), and the planning chat (right). Break large ideas into structured specs, validate dependencies, and dispatch leaf specs to the board when the design is right.

Oversight: an actionable audit trail

Oversight summary, event timeline, and diff

Inspect what happened, when, and why before you accept any automated output. Every task produces a structured event timeline, a diff against the default branch, and an AI-generated oversight summary.

Cost and usage visibility

Usage and cost breakdown

Track token usage and cost by task, activity, and turn, so operations stay measurable as automation scales. The per-activity breakdown (implementation, testing, refinement, oversight) shows exactly where budget goes.

Capability Stack

  • Chat. Planning chat with slash commands and file-explorer context, conversational drift away from or back into specs.
  • Spec. Six-state lifecycle, dependency DAG, recursive progress tracking, impact analysis, atomic dispatch and undo.
  • Task. Host-process execution, per-task git worktrees, autoimplement, auto-test, auto-submit, auto-retry, circuit breakers, cost and token budgets, oversight summaries.
  • Code. File explorer with editor, integrated terminal, live logs and diff review, per-turn usage and timeline, native per-repo AGENTS.md/CLAUDE.md discovery.

Five composable sub-agent roles (each pinned to any installed harness) arrange into flows (implement, plus user-authored clones) that can be inspected or rewritten from the sidebar.

Roadmap

Development is organized into three parallel tracks with shared foundations. See specs/README.md for the full dependency graph and spec index.

Foundations (complete): Execution backend interface, storage backend interface, file explorer, host terminal, multi-workspace groups, Windows support.

Local Product: Developer workflow. Spec coordination (document model, planning UX, drift detection), agents and flows (composable sub-agent pipelines), routine tasks (scheduled spawns), file and image attachments, host mounts, oversight risk scoring, visual verification, live serve.

Cloud Platform: Multi-tenant hosted service. Tenant filesystem, K8s execution backend, cloud infrastructure, multi-tenant control plane, tenant API.

Shared Design: Cross-track specs. Authentication, agent abstraction, native sandboxes (Linux, macOS, Windows), overlay snapshots.

Documentation

User Manual is the full reading order. Guides are grouped by what you are doing.

Get Started

Guide Topics
Getting Started Installation, credentials, sign-in, first task
Concepts Mental model: workspaces, tasks, specs, agents, autonomy

Use Wallfacer

Guide Topics
Board Task board, lifecycle, dependencies, search, task detail
Chat Chat sessions, slash commands, @mentions
Plan Spec mode, lifecycle states, dispatch, planning chat
Agent Graph Agents, fleets, harness pinning, live traces
Routines Scheduled cards that spawn tasks on an interval
Whiteboard Free-form drawing canvas per workspace

Operate

Guide Topics
Automation Autoimplement, auto-test, auto-submit, auto-retry, circuit breakers
Oversight Oversight summaries, timelines, logs, diff review, analytics
Mission Control Unified spec and task graph, acting on the pipeline
Workspaces Workspace management, git integration, branches, GitHub
Configuration Settings, env vars, harnesses, CLI, shortcuts

Build On (Internals) is the deep reference for how the system works. Start at Technical Internals.

Reference Topics
Architecture System design, package map, handler organization, end-to-end walkthrough
Data & Storage Data models, persistence, event sourcing, spec document model
Task Lifecycle State machine, turn loop, dependencies, failure categorization
Git Operations Worktree lifecycle, commit pipeline, branch management
API & Transport HTTP route reference, SSE, WebSocket terminal, middleware
Auth & Identity OIDC, device sign-in, principal context, cloud mode
Automation Background watchers, autoimplement, agon, circuit breakers, routines
Agent Graph Runtime Embedded topos runtime, agentic execution, live traces
Plan Mode Spec tree, agent sessions, slash commands, dispatch, undo
Workspaces & Config Workspace manager, harness routing, templates, env config
Development Setup Building, testing, make targets, release workflow

Contributing? See CONTRIBUTING.md for the developer orientation, build commands, and conventions.

Origin

Wallfacer started as a task board for coordinating concurrent agent runs and grew from there: spec coordination, oversight, refinement, an integrated IDE. Most recent capabilities were developed by Wallfacer itself. See docs/origin.md for the long version.

License

MIT

Extension points exported contracts — how you extend this code

Harness (Interface)
Harness adapts a coding-agent CLI to wallfacer's canonical task model. [7 implementers]
internal/harness/harness.go
ContainerLister (Interface)
ContainerLister can enumerate currently running containers. [4 implementers]
internal/runner/recovery.go
Handle (Interface)
Handle is a stateful reference to a running sandbox container. [4 implementers]
internal/executor/backend.go
DriftTester (Interface)
DriftTester assesses how far a task's implementation drifted from its spec. The production implementation runs an agent; [4 …
internal/handler/specs_drift.go
WakeSource (Interface)
WakeSource provides subscribe/unsubscribe for coalescing wake signals. Typically satisfied by *pubsub.Hub via its Subscr [3 …
internal/pkg/watcher/watcher.go
Sender (Interface)
Sender is the send side of a live instance connection. The accept handler implements it over the WebSocket; the registry [3 …
internal/coordinator/registry.go
AgentLauncher (Interface)
AgentLauncher is the narrow interface the flow Engine uses to dispatch a single agent step. The runner satisfies it via [2 …
internal/flow/launcher.go
Broker (Interface)
Broker mints or refreshes a GitHub App token for a principal by brokering through the ../auth service (which owns the "L [2 …
internal/github/provider.go

Core symbols most depended-on inside this repo

expect
called by 1511
frontend/scripts/ui-shots/checks.mjs
Join
called by 1283
internal/coordinator/registry.go
Error
called by 934
internal/handler/execute.go
CreateTaskWithOptions
called by 913
internal/store/tasks_create_delete.go
String
called by 831
internal/harness/harness.go
Error
called by 623
internal/pkg/cmdexec/tx.go
GetTask
called by 451
internal/store/tasks_list.go
Now
called by 340
internal/routine/engine.go

Shape

Function 5,093
Method 1,296
Struct 463
Interface 174
TypeAlias 30
Class 12
FuncType 7

Languages

Go88%
TypeScript12%

Modules by API surface

internal/handler/tasks_test.go162 symbols
internal/store/coverage_test.go151 symbols
internal/handler/config_test.go97 symbols
internal/store/tasks_test.go94 symbols
internal/handler/execute_handler_test.go61 symbols
internal/envconfig/envconfig_test.go61 symbols
internal/runner/misc_test.go60 symbols
internal/runner/oversight_test.go56 symbols
internal/handler/git_test.go56 symbols
internal/runner/runner.go55 symbols
internal/runner/execute_test.go50 symbols
internal/handler/explorer_test.go48 symbols

Datastores touched

mydbDatabase · 1 repos

For agents

$ claude mcp add wallfacer \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact