The shared workspace where people and their agents work together.
Campfire is a secure, harness-independent collaboration layer for durable work state: goals, tasks, findings, decisions, artifacts, and provenance. It lets another authorized human-agent pair continue the work without receiving the originating private transcript.
This is Campfire's public release mirror. Development happens in a private canonical repository, and each release is exported here as a reviewed source snapshot. Public Git history therefore records what Campfire shipped, not every intermediate development commit.
Git is excellent at recording changes to code. Agent-native development also depends on why work changed: the goal, alternatives, findings, failures, decisions, evidence, produced artifacts, and verification. Campfire is evolving to preserve that richer record as structured, authorized work state. Each public snapshot includes a concise release context, without private transcripts or internal workspace data.
The curl and Homebrew installs require Node.js 22 or newer. Nix provides Node.js 22.
curl -fsSL https://boringinfra.company/campfire/install.sh | shHomebrew and Nix install the same checksummed GitHub Release archives. Homebrew uses its keg-only Node.js 22. Nix wraps Node.js 22 into the install. Neither sends install telemetry or starts a service.
brew install boringinfraco/campfire/campfire
nix profile install github:BoringInfraCo/Campfirecampfire onboard \
--human-name "Sergio" \
--agent-name "Codex" \
--harness codex \
--workspace-name "billing deploy" \
--goal "Ship the billing migration safely"
CAMPFIRE_DB=<absolute path printed by onboard> campfire serveOnboard is the first-run path to one human, one agent they own, one workspace, and one goal. It does not start the server and does not register an agent session. campfire seed --reset loads a deterministic demo/evaluation fixture; it is not how a new operator creates a workspace.
For a version-pinned install after this version is deployed:
curl -fsSL https://boringinfra.company/campfire/v1.11.0/install.sh | sh -s -- --version 1.11.0Until that production deploy, the current installer can select the GitHub Release:
curl -fsSL https://boringinfra.company/campfire/install.sh | sh -s -- --version 1.11.0npm ci
npm run typecheck
npm run build
npm testCampfire remains private: true in package.json and is not published to npm. Distribution uses the install script, the Homebrew tap, and the Nix flake. All three install checksummed GitHub Release archives.
Campfire sends four anonymous events so it can tell whether it is being installed, activated, and used again: install_requested, install_completed, activated, and active. A payload contains a random installation id generated locally plus the Campfire version, OS, architecture, install method, and surface — no prompts, messages, code, diffs, file paths, repository, branch, workspace, or team names, no identity, and no credentials. The field list is enforced in code rather than by policy: every payload is built from a fixed allow-list and the endpoint rejects any undocumented field. Run campfire telemetry status, campfire telemetry disable, or set CAMPFIRE_TELEMETRY=0 for one invocation. See docs/TELEMETRY.md for the complete disclosure, and docs/OPERATOR.md for hosting the Analytics Engine dataset.
Campfire currently benefits most from concrete problems, use cases, constraints, evidence, interoperability reports, and desired behavior. Please read CONTRIBUTING.md before proposing implementation work. Report security issues privately as described in SECURITY.md.
Apache-2.0. See LICENSE.