Skip to main content

Simultaneous Production, Integration, and Control Environment: an agent harness for coding repositories.

Project description

spice

Simultaneous Production, Integration, and Control Environment.

spice is an installed, repo-native harness for operating coding agents. It treats the agent transcript as the source of truth and the repository filesystem as the steering channel; supervision, task routing, git pressure, live feedback, and hygiene gates are derived from those two surfaces.

It is built for agents moving fast in parallel: every correction is durable, every task boundary is observable, and the gate catches structural drift before it lands.

Live steering and semantic ACK loop

Operator steering arrives in the live stream; an assistant ACK retires the exact inbox key from the durable filesystem queue.

What it does

  • Semantic ACKs: steering is not considered handled until the agent acknowledges the durable key in assistant prose.
  • Task allocation: spice task next owns work selection; task boundaries own git synchronization and review phases.
  • Conscience: curated maxims judge assistant prose while work is still in flight, then route violations back as ordinary steering.
  • Constitution: pre-commit and spice study ... enforce repository shape, file/routine limits, env policy, reachability, assertion density, private internals, and commit-message rules.
  • Serve UI: spice serve exposes lanes, teams, live transcripts, steering, attachments, task routing, and browser-visible diagnostics.

See docs/overview.md for the operating model and docs/interface.md for the serve UI.

Commands

Surface Command
Prepare a repo spice init / spice dev doctor
Run through the agent wrapper spice agent run -- <cmd>
Maintain a worktree-bound agent spice agent ensure / spice agent supervise
Pull allocator work spice task next
Rehydrate context spice session briefing
Open the operator UI spice serve
Run studies and gates spice study ... / git pre-commit hook

Configuration lives in CONFIG.md. The design contract lives in DESIGN.md. Wrapper command behavior is detailed in docs/cli/wrapper-commands.md, and the public repo-tool library seam is in docs/library-seam.md.

Install

uv tool install -e /path/to/spice-main
# or, for the released package:
uv tool install spice-harness

cd /path/to/your/repo
spice init
spice dev doctor

The default install is a uv tool. Operators who deploy from a main tree should use the editable form so the installed spice command resolves to that tree; that editable main tree is the server deployment. Other worktrees remain operated trees and do not supply their own runtime.

The common-dir layout is opt-in. Set uv's tool directories before installing if you deliberately want the tool environment and executable under a repository's shared git directory:

repo=/path/to/your/repo
common_dir=$(cd "$repo" && git rev-parse --path-format=absolute --git-common-dir)
UV_TOOL_DIR="$common_dir/spice/tools" \
UV_TOOL_BIN_DIR="$common_dir/spice/bin" \
uv tool install -e /path/to/spice-main

Graceful degradation

RTK, the local judge, and speech synthesis are optional companions. When they are unavailable, spice keeps the transcript, steering, task board, and constitution working; only compaction, maxim feedback, or audio narration degrade. Runtime and configuration details are in CONFIG.md.

Release

Release workflow is documented in docs/release.md. Most users only need to know that releases are cut from clean synchronized worktrees through the repository's mounted spice release command.

Status

Work in progress toward a standalone, releasable product. The loop described here is real, exercised daily, and guarded by the same constitution that spice init installs elsewhere.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spice_harness-0.16.0.tar.gz (796.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

spice_harness-0.16.0-py3-none-any.whl (601.7 kB view details)

Uploaded Python 3

File details

Details for the file spice_harness-0.16.0.tar.gz.

File metadata

  • Download URL: spice_harness-0.16.0.tar.gz
  • Upload date:
  • Size: 796.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for spice_harness-0.16.0.tar.gz
Algorithm Hash digest
SHA256 c50de908ae42c37bb3d57e4b9e419c862e1089d354aa453710f874c5bcf23834
MD5 9f160921ff0b63a35bd8227450d4cf47
BLAKE2b-256 71ec3037eb9a1f5be973a52ce145c456d581c6d8736219ca68bade0df5a0f7ab

See more details on using hashes here.

File details

Details for the file spice_harness-0.16.0-py3-none-any.whl.

File metadata

  • Download URL: spice_harness-0.16.0-py3-none-any.whl
  • Upload date:
  • Size: 601.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for spice_harness-0.16.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c9186049d823e6ab9a4e2da27cc48c0eb4f4f2bc5b5559f24e073f537b5f8249
MD5 f550aae79c2b05b2c95eb6e9b8b4fff5
BLAKE2b-256 263a8daa3eafa132129e2096f80c2c698b408e28fa02c3ea9920630c955f2b1b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page