Skip to content

Repository files navigation

spore

spore

CI Coverage

Spore is a small, local harness for LLM coding agents. It plants rules, task files, hooks, validation gates, and tmux worker sessions into an existing repo so agents can work on explicit tasks without turning the project into a SaaS workflow.

Status: beta, dogfooded on live projects.

How it works

  • each task is a markdown file under tasks/;
  • each active task gets its own git worktree and tmux session;
  • a coordinator starts workers, watches progress, and kills stale sessions;
  • hooks and lints run before a task can close;
  • closing a task requires evidence: commits, changed files, tests, or a written reason none apply.

Everything runs in your repo through git and tmux. Attach to a session, read the task file, inspect the branch, or kill the fleet.

Install

Spore installs with Nix. On a flake-based system, add it as an input and reference the package:

# flake.nix
inputs.spore.url = "github:versality/spore";

# NixOS
environment.systemPackages = [ inputs.spore.packages.${pkgs.system}.default ];

# home-manager
home.packages = [ inputs.spore.packages.${pkgs.system}.default ];

Or run it without installing:

nix run github:versality/spore -- <args>   # one-shot
nix shell github:versality/spore           # ephemeral shell on PATH
nix profile install github:versality/spore # imperative install

Quick start

Adopt an existing project:

cd /path/to/project
spore bootstrap

Run spore bootstrap as many times as you like. Each run advances the setup as far as it can, then stops and tells you the one thing it needs from you next. The steps it walks through: scan the repo, find the test command, set up credentials, check the README, run the tests, and turn on the worker fleet.

When the project is worker-ready, create work and start the fleet:

spore task new "first task"
spore fleet enable
spore fleet reconcile

Each worker and the coordinator run in their own tmux session. Run spore fleet list-sessions to see them all.

Fresh server

spore infect installs NixOS over SSH onto a fresh, root-reachable VM, copies your repo over, and starts an Opus coordinator:

spore infect 203.0.113.7 --ssh-key ~/.ssh/id_ed25519 --repo . --coordinator-model opus
ssh -t spore@203.0.113.7

It wipes the target host, so point it only at a throwaway VM. See docs/infect.md for all flags, the Codex coordinator, and custom flakes.

Configuration

Run spore init to scaffold a documented spore.toml. The main sections:

  • docs/worker-mix.md - pick worker agents (Claude, Codex, any binary) per task by ratio or complexity rule.
  • docs/matter.md - pull work from external sources (Linear, GitHub Issues) and mirror task transitions back.
  • docs/fleet-module.md - autostart the fleet on NixOS hosts, horizontal scale, and graceful deployment drains.

Architecture

Main extension points:

Docs

License

Spore is licensed under the Apache License, Version 2.0. See LICENSE for the full text.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages