Pull mirror of github.com/fabrig-ai/temper
  • Rust 96.8%
  • Python 2.3%
  • CSS 0.7%
  • Shell 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Free Ekanayaka 4f1fa8a25e Draft configuring.md: configuring temper by talking to it
first-release.md's section 7 taken further with the user, 2026-10-23,
and its body replaced by a pointer. Structure becomes settings, rules
stay text that runs read; settings live in the store, never in
temper.json, a missing one taking the binary's default; a change is one
decision, proposed by the agent and accepted by an owner; new work
follows it while running work keeps the charter it started under, in
revisions side by side. upgrades.md's reference follows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Gate-Tree: ee5d6ee2f7
Gate-Result: none (Markdown and mockups only)
2026-10-23 20:01:20 +01:00
.config Live tier: a chat's change lands on github.com through a restart, behind a counting relay 2026-10-23 16:25:40 +00:00
crates Regenerate the memory figures at jig 986066d31 2026-10-23 18:44:14 +00:00
docs Draft configuring.md: configuring temper by talking to it 2026-10-23 20:01:20 +01:00
lab lab: S host records its cost class in run.json's bounds 2026-10-23 17:59:24 +00:00
scripts Show live landing diagnostics and keep the signed-in deployment 2026-10-23 17:28:59 +00:00
testing LICENSE: MIT, as skein, smith and jig 2026-10-23 14:28:31 +01:00
tests Repin jig to 986066d31: project names on the wire, restarts restore projects 2026-10-23 18:41:02 +00:00
tools Repin jig to 986066d31: project names on the wire, restarts restore projects 2026-10-23 18:41:02 +00:00
.gitattributes Implement protocol schemas and credential domain prerequisites 2026-10-04 10:39:19 +01:00
.gitignore Use jig from its standalone Git repository 2026-10-09 07:45:45 +01:00
AGENTS.md docs: provisionally double test-time caps at the user's request 2026-10-22 16:27:25 +00:00
Cargo.lock Repin jig to 986066d31: project names on the wire, restarts restore projects 2026-10-23 18:41:02 +00:00
Cargo.toml LICENSE: MIT, as skein, smith and jig 2026-10-23 14:28:31 +01:00
clippy.toml Say where skein's foundation documents are, and cite them one way 2026-10-03 19:41:17 +01:00
LICENSE LICENSE: MIT, as skein, smith and jig 2026-10-23 14:28:31 +01:00
README.md Point the template and the owned example at OpenAI's API 2026-10-21 02:57:59 +00:00
rustfmt.toml Add the agent model layer: LLM sessions, with a simulated provider 2026-10-01 22:12:13 +01:00

temper

Agent-driven software development on a forge.

People decide what to build and why; agents do the work, from first draft to landed change.

The idea

  • People direct, agents develop. People decide at the level of goals, designs and plans, and step in where agents cannot decide. Agents write, check, review and land the changes; feedback on code is their business.
  • Mechanics are code, judgement is an LLM's. A change's way to landing is a procedure: checked by CI, reviewed by gates, repaired, brought up to date, landed through a queue per branch. An agent is woken only for what needs judgement: making a change, repairing a failure, reviewing, resolving a conflict, revising a plan.
  • A careful guest on the forge. Repositories are adopted as they are. temper writes only to what it owns, never forces a push, and merges exactly the head its decision saw. A change it did not make to what it owns is drift: the work relying on it is held, and nothing is written over. Forgejo is the forge today.
  • Built from the family. jig's engine runs the work, smith's agents do it under the charters temper writes and with the tools it serves, and skein carries the bytes, the forge's calls among them.
  • One binary, standalone first. temper serve runs the engine and a worker on one person's machine, temper open is that person's terminal, and temper forge and temper box set up and run a forge beside it.
  • Tested as it runs. Worlds with a fake forge and a fake LLM, then the real loop, then the binary against an owned Forgejo with its runner and real git, then a real model.

Start here

  • docs/design/README.md: what temper is, what it is built from, and where each part of its design lives.
  • docs/guide/box.md: a local temper box, with its own Forgejo, on loopback.
  • docs/guide/github.md: GitHub connected from temper's client, through temper's own App.
  • docs/guide/forgejo.md: a Forgejo connected from temper's client, managed, owned or connected.
  • docs/design/STATUS.md: how far the code is from the design.
  • skein's foundation, which temper follows: programming-model.md, testing-strategy.md and notes.md.

Before changing code, read AGENTS.md and docs/development/workflow.md. main moves only through skein's land, which runs the gate, scripts/check.sh.

The family

These are the repositories of Fabrig, an agent-driven software factory: write, prove, run.

Repository Builds on
skein One thread, one loop, no async
smith Protocol-driven agent loop for AI applications skein
jig Engine for agentic applications skein, smith
temper Agent-driven software development on a forge skein, smith, jig
hearth Immutable machines, built from a revision skein

Commands that read the deployment use <config>/temper.json and accept --config DIR --data DIR --cache DIR after their command words. Each flag falls back to TEMPER_CONFIG, TEMPER_DATA or TEMPER_CACHE, then the corresponding XDG directory under temper. Relative flags are joined to the working directory once at startup. Data and cache must be private.

temper init --config ./config --data ./data --cache ./cache writes the initial configuration, worker secret and charters. It refuses existing temper.json, worker.secret or worker.digest files.

After starting temper, open the accounts page and add an OpenAI API key. The initial configuration uses OpenAI's public Responses API. ChatGPT sign-in will be available later.