codeaf

module
v0.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 17, 2026 License: Apache-2.0

README

Frontier-grade coding on open models, at a fraction of the cost.

CodeAF is a coding harness built for open models, to get the most out of every dollar. It is also a different way to work once more than one thing is going on: instead of three terminals of agents with you in the middle, one window where you hand work off, see what is moving across every project, and step in only where your judgment is needed. A factory, on your own machine, and the more you hand it the more it does.

Written in Go as one small binary, with nothing else to install or run. Apache 2.0. By AgentField AI.

Early preview. CodeAF is young and moving fast. Expect rough edges, and tell us where you hit them on Discord or in an issue.

https://github.com/user-attachments/assets/bc87e460-17b1-4d7a-8c69-284b524ea194

Real speed, with sound. The three tasks run live on DeepSeek V4.1 Flash; the other projects and the large task tree are a seeded demo machine.

Install

curl -fsSL https://agentfield.ai/get/codeaf | bash
codeaf

The script puts the release binary for your platform in ~/.codeaf/bin. To pin a version, give it a tag from the releases page, where the assets and checksums also live:

curl -fsSL https://agentfield.ai/get/codeaf | VERSION=<tag> bash

To build it yourself: git clone, make build, bin/codeaf (guide).

On first start it asks for a key: OpenRouter, DeepSeek, GLM, Kimi, MiniMax or Qwen. Ollama needs none.

Telemetry

codeaf sends anonymous usage counts to AgentField.
  Sent:  version, OS, mode (chat or task), how many sessions, how many errors.
  Never: anything about you or your work. No prompts, code, file names,
         paths, repo names, keys, email, IP, or machine name.
  See exactly what leaves:  codeaf telemetry show
  Turn off:                 CODEAF_TELEMETRY=off

The events are counts and buckets only — no prompts, code, or file names ever leave the machine. docs/TELEMETRY.md lists every field that is sent and every way to turn the counts off. The installer records how and when this copy was installed (telemetry/install.json under the state root) so the counts can bucket by channel; it sends nothing.

codeaf telemetry show prints exactly what is waiting to leave the machine; status, on and off are the rest. Turn it off with CODEAF_TELEMETRY=off (also 0 or false), DO_NOT_TRACK=1, codeaf telemetry off, telemetry = off in a project's .codeaf/config.json, or an empty CODEAF_TELEMETRY_ENDPOINT.

One window for every project

An agent that lives in one folder means a terminal per repository, and a tmux layout to remember which is which. CodeAF is one window.

home lists every project and conversation on the machine. enter opens any of them in a tab, and the one you left keeps streaming with its tasks still running. tab flips back. alt+k jumps to any conversation, open or closed. Each keeps its own approval rules, models and spend limit.

home answers what needs you, what is unread, what is running and what it cost, for all of them at once. A digit answers a question from its row.

Talk, and it becomes tasks

Say what is wrong the way you would to a colleague. Name three things in one message and each can become its own task, in its own copy of the repository, on its own branch. The conversation stays yours while they run, and the rail beside it shows every task and its subtasks.

 › three more while you are on it: the retry test fails one run in five on CI,
   the pricing page wraps mid word on phones, and the deploy key expires friday

Work that passes its check lands on your branch by itself, never on main, dev or a release branch. Work nothing could check waits under unread: 1 accept, 2 not right.

What a factory is

Agents run by hand got fast, but the scheduling, checking and merging stayed with you.

A factory is the third picture: one line out, one line back.

  • It does the middle. It sizes the work, splits it, runs the parts where they cannot collide, tests what came back and merges what passed.
  • It asks only when it must. A question waits under needs you, from every project. Everything else it decides, writes down, and carries on.

Subharnesses: specialists built for one job

A general agent does everything a little. The work that matters most comes round in the same shape: review this pull request, fix this issue, audit these dependencies. A subharness is a specialist built for exactly that job, with its own plan, its own checks and the models that suit it. It takes typed input and returns typed output, so it delivers what it promised or is marked incomplete. A run is a task like any other, on home, with a room and a stop.

  • Coming soon, native: PR-AF, the #1 open-source code reviewer on Martian Code-Review-Bench.
  • Coming soon, in the benchmark below: the developer subharness against general harnesses on the same open model.
  • Your own: "make me a harness for triaging flaky tests" designs one, saves it, and /subharness runs it.

Benchmarks

Coming soon. The run is held-out GitHub issues, several seeds each, through CodeAF's developer subharness and the general harnesses on the same open model: pass rate, cost per issue and time per issue, with every failure, timeout and unpriced call written up in BENCHMARKS.md. The chart and the table land here when the run completes, and bench/ runs it on your own repository.

The right model for each call

One session, many models. The model you talk to is one seat. Five more, the crew, take the calls you did not type:

seat what it answers
reflex memory, titles, the safety gate. Near free, reads every turn.
small work digests, task names, yes-or-no checks
worker every task you hand off. Most of the bill.
careful work checks on finished work, the brief a task is shaped into, vision
mastermind plans runs and designs subharnesses

/crew frugal, balanced or max sets all five in one word. Any seat can be pinned.

Every finished task is graded by the check it already had to pass. Work that keeps failing on the worker seat moves up to careful work on its own, and each request goes to the provider that has been fastest for that kind of call. codeaf models prints the ratings.

Providers built in: OpenRouter, DeepSeek, GLM, Kimi, MiniMax, Qwen, Ollama and any OpenAI-compatible endpoint.

Standing orders

Rules, reminders and watches are one thing, and you set them up by saying them. "Never commit straight to main here." "Every Monday, draft the weekly update." "Tell me when CI goes red." A card asks once; 1 and it stands, in this project or everywhere, on the same daily spend limit as the rest.

Headless is the other front door

The same factory, with the conversation removed, for CI, cron, scripts and benchmark harnesses.

codeaf do "bump every dependency whose changelog is worth reading" --timeout 30m --json

do takes your brief byte for byte, plans, runs and checks it, and prints one JSON object and an exit code. Where the conversation would ask, it takes its best answer and records the assumption. exec runs one worker with no plan; run executes a plan you edited. The contract.

Run it on your dev box, drive it from anywhere

Most agents on a remote box mean ssh, tmux, and a terminal that lags on every key. CodeAF splits in two instead. The screen runs on the machine in front of you. The conversation runs on the machine that owns the work, and home shows that machine: its projects, tasks and standing orders.

codeaf chat --host devbox    # your own ssh: config, keys, jump hosts. nothing to install there but codeaf
  • Typing never waits on the network. Drawing the screen makes no round trip. Pressing enter makes one.
  • Close the lid, the work keeps going. The conversation lives on devbox. A dropped link redials for five minutes, a question asked while you were away is still waiting when you come back, and desk and laptop can watch the same turn.
  • Files cross both ways. Paste a screenshot or drop a file and it lands on devbox. Click a path in a reply and it opens here, in your own editor.

On your phone there is no app to install. ssh in from any mobile terminal, run codeaf in the project, and it joins the same live conversation, folded to fit the screen.

Still local over a connection: spend, search and memory. Reaching a machine with no ssh at all, through a relay and a pairing code, is built and switches on when the hosted relay does. How it works.

What a copilot does, and what CodeAF does

a copilot CodeAF
where you work one window, one repository every project on the machine, from one control room
what you do watch it type describe work, answer what needs you, decide what lands
what runs one model, one thread six seats chosen per call, and subharnesses built for one job
how long it lasts one session conversations, tasks and standing orders that outlive the window
without you it stops headless, standing orders, a phone in your pocket

Docs

  • codeaf manual, or alt+. for the key map. The manual ships in the binary and the chat reads it too.
  • Guide: every flag, key, slash command and exit code.
  • docs/: architecture, headless, remote, limits.

Built by the AgentField team.

Directories

Path Synopsis
bench
lanelab/gosim command
Command gosim replays `bench/lanelab`'s three scenarios against the SHIPPED lane router and prints the ship gate.
Command gosim replays `bench/lanelab`'s three scenarios against the SHIPPED lane router and prints the ship gate.
cmd
codeaf command
The cache from the command line: what it holds, and the one destructive verb that empties it.
The cache from the command line: what it holds, and the one destructive verb that empties it.
codeaf-census command
codeaf-census is the instrument the recovery design asks for: it reads the model-call log this build always writes (`~/.codeaf/logs/calls.jsonl`, internal/calllog) and prints, as markdown, the table docs/design/recovery/DESIGN.md §1 argues from.
codeaf-census is the instrument the recovery design asks for: it reads the model-call log this build always writes (`~/.codeaf/logs/calls.jsonl`, internal/calllog) and prints, as markdown, the table docs/design/recovery/DESIGN.md §1 argues from.
codeaf-changes command
codeaf-changes is the changelog's gate, its scaffold and its typesetter.
codeaf-changes is the changelog's gate, its scaffold and its typesetter.
codeaf-notices command
codeaf-notices builds the third-party notice carried beside every release.
codeaf-notices builds the third-party notice carried beside every release.
codeaf-release command
codeaf-release resolves release tags and channel retention for the release workflow.
codeaf-release resolves release tags and channel retention for the release workflow.
codeaf-replay command
codeaf-replay judges a chooser by REGRET ON TEN DAYS OF LOG rather than by a screenshot.
codeaf-replay judges a chooser by REGRET ON TEN DAYS OF LOG rather than by a screenshot.
harness-design command
Command harness-design is a development rig, not a shipped surface.
Command harness-design is a development rig, not a shipped surface.
relay command
Command relay is the codeaf relay: a blind pipe between a machine that runs codeaf and a machine somebody is sitting at.
Command relay is the codeaf relay: a blind pipe between a machine that runs codeaf and a machine somebody is sitting at.
internal
approval
Package approval is the consent policy for the v3 session agent: one pure function from a tool call to allow, prompt or deny.
Package approval is the consent policy for the v3 session agent: one pure function from a tool call to allow, prompt or deny.
buildinfo
Package buildinfo names the source and moment that produced this codeaf.
Package buildinfo names the source and moment that produced this codeaf.
cachedir
Package cachedir owns the one directory under codeaf's state root that holds nothing but caches: ~/.codeaf/cache, where every task worker's toolchain caches live (internal/exec's sweCacheRoot puts go-mod, go-build, cargo, npm and pip under it).
Package cachedir owns the one directory under codeaf's state root that holds nothing but caches: ~/.codeaf/cache, where every task worker's toolchain caches live (internal/exec's sweCacheRoot puts go-mod, go-build, cargo, npm and pip under it).
calllog
Package calllog is codeaf's always-on record of the model calls it makes.
Package calllog is codeaf's always-on record of the model calls it makes.
callrows
Package callrows reads the model-call log this build always writes (`~/.codeaf/logs/calls.jsonl`, internal/calllog) back into rows.
Package callrows reads the model-call log this build always writes (`~/.codeaf/logs/calls.jsonl`, internal/calllog) back into rows.
cas
Package cas stores immutable blobs by their SHA-256 digest.
Package cas stores immutable blobs by their SHA-256 digest.
catalog
Package catalog owns OpenRouter model discovery across every modality.
Package catalog owns OpenRouter model discovery across every modality.
ci
Package ci holds the laws about the repository's own gate — the tests that read .github and the Makefile rather than the product, and refuse the shapes that let dev go red unseen on 2026-09-02 (#372).
Package ci holds the laws about the repository's own gate — the tests that read .github and the Makefile rather than the product, and refuse the shapes that let dev go red unseen on 2026-09-02 (#372).
ci/testreport
Package testreport turns go test's JSON event stream into a durable timing report.
Package testreport turns go test's JSON event stream into a durable timing report.
config
Package config holds the harness's process-wide defaults.
Package config holds the harness's process-wide defaults.
connect
Package connect is the accounts layer: it holds the keys that let codeaf act on a person's own SaaS accounts — their mail, their calendar — and hands the rest of the program one ready, self-refreshing http.Client per account.
Package connect is the accounts layer: it holds the keys that let codeaf act on a person's own SaaS accounts — their mail, their calendar — and hands the rest of the program one ready, self-refreshing http.Client per account.
connect/ampcatalog
Package ampcatalog is codeaf's own copy of the parts of the amp-labs provider catalog that this program reads.
Package ampcatalog is codeaf's own copy of the parts of the amp-labs provider catalog that this program reads.
connect/ampcatalog/gen command
Command gen writes internal/connect/ampcatalog/providers.json from the amp-labs catalog.
Command gen writes internal/connect/ampcatalog/providers.json from the amp-labs catalog.
consent
Package consent is the price before the purchase.
Package consent is the price before the purchase.
craft
Package craft is codeaf's learned know-how: workflows, skills, verifiers, and exemplars, versioned in a git repository the resident owns.
Package craft is codeaf's learned know-how: workflows, skills, verifiers, and exemplars, versioned in a git repository the resident owns.
ctxbudget
Package ctxbudget is the one place that turns a model's context window into byte and token budgets.
Package ctxbudget is the one place that turns a model's context window into byte and token budgets.
effort
Package effort is the reasoning-depth ladder: five named rungs, one resolver, and nothing else.
Package effort is the reasoning-depth ladder: five named rungs, one resolver, and nothing else.
enginehost
Package enginehost is the process that keeps a conversation alive between connections.
Package enginehost is the process that keeps a conversation alive between connections.
env
Package env is the one door for environment variables owned by codeaf.
Package env is the one door for environment variables owned by codeaf.
exec
Package exec runs the leaves of a plan.
Package exec runs the leaves of a plan.
exec/bare
Package bare — edit matching logic, pinned to pi's edit-diff.js.
Package bare — edit matching logic, pinned to pi's edit-diff.js.
filedoor
Package filedoor is the loopback door: a 127.0.0.1 HTTP listener, owned by one chat surface, that turns files on the FAR machine into things this machine's own programs can open — a browser tab, cmd+click on an OSC 8 link, the platform opener.
Package filedoor is the loopback door: a 127.0.0.1 HTTP listener, owned by one chat surface, that turns files on the FAR machine into things this machine's own programs can open — a browser tab, cmd+click on an OSC 8 link, the platform opener.
filememo
Package filememo is the one answer to "a file read at most once per change".
Package filememo is the one answer to "a file read at most once per change".
furrow
Package furrow is codeaf's seam onto `furrow`, a separate program codeaf carries inside itself (Agent-Field, Apache-2.0, https://github.com/Agent-Field/furrow).
Package furrow is codeaf's seam onto `furrow`, a separate program codeaf carries inside itself (Agent-Field, Apache-2.0, https://github.com/Agent-Field/furrow).
furrowbin
Package furrowbin carries furrow inside codeaf and puts it on disk the first time anything wants it.
Package furrowbin carries furrow inside codeaf and puts it on disk the first time anything wants it.
furrowbin/cmd/fetch command
Command fetch puts the pinned furrow release where `go:embed` will find it.
Command fetch puts the pinned furrow release where `go:embed` will find it.
guard
Package guard is the one place a panic stops being fatal.
Package guard is the one place a panic stops being fatal.
head
Package head turns durable thread messages into immediate conversational replies and asynchronous graph commands.
Package head turns durable thread messages into immediate conversational replies and asynchronous graph commands.
history
Package history is the input-history store: the lines the person typed, kept across sessions so a surface can walk them back with the up arrow.
Package history is the input-history store: the lines the person typed, kept across sessions so a surface can walk them back with the up arrow.
home
Package home resolves the one directory codeaf owns: its state root.
Package home resolves the one directory codeaf owns: its state root.
jsrun
Package jsrun is THE JavaScript runtime for subharnesses — one generic Go runner parameterized by a bundle.
Package jsrun is THE JavaScript runtime for subharnesses — one generic Go runner parameterized by a bundle.
lane
Package lane is what this build believes about the machines behind a model.
Package lane is what this build believes about the machines behind a model.
lane/control
Package control decides WHEN a wait has gone on long enough to act on, and it is the only thing in this build that decides that.
Package control decides WHEN a wait has gone on long enough to act on, and it is the only thing in this build that decides that.
lane/lanestub
Package lanestub is a fake router with lanes of a scripted speed: the shared measuring instrument for everything in `internal/lane`.
Package lanestub is a fake router with lanes of a scripted speed: the shared measuring instrument for everything in `internal/lane`.
lease
Package lease elects the one process currently serving as a resident for a durable codeaf store.
Package lease elects the one process currently serving as a resident for a durable codeaf store.
leave
Package leave is the one road out of a process somebody outside it asked to stop.
Package leave is the one road out of a process somebody outside it asked to stop.
manual
Package manual is what codeaf knows about itself, embedded in the binary.
Package manual is what codeaf knows about itself, embedded in the binary.
manual/asked
Package asked is the questions a STRANGER asks, and the page each one is about.
Package asked is the questions a STRANGER asks, and the page each one is about.
modelsource
Package modelsource describes the places models come from without reading the machine or opening the network.
Package modelsource describes the places models come from without reading the machine or opening the network.
modelsource/sourcestub
Package sourcestub provides a small OpenAI-shaped service for source-routing tests.
Package sourcestub provides a small OpenAI-shaped service for source-routing tests.
offpath
Package offpath holds the two shapes of work that must happen but must not happen HERE — on the path a person is waiting on.
Package offpath holds the two shapes of work that must happen but must not happen HERE — on the path a person is waiting on.
openrouterauth
Package openrouterauth connects a local codeaf profile to OpenRouter without asking the person to make and copy an API key by hand.
Package openrouterauth connects a local codeaf profile to OpenRouter without asking the person to make and copy an API key by hand.
orchestrate
Package orchestrate is the adaptive runner: a planner model and a frontier scheduler, married.
Package orchestrate is the adaptive runner: a planner model and a frontier scheduler, married.
orientation
Package orientation builds a compact repo digest that a leaf's first prompt carries so orientation costs zero turns: a bounded directory tree, code-file declaration/signature outlines (NOT bodies), test-file names, and — when the run already knows it — the failing-test summary.
Package orientation builds a compact repo digest that a leaf's first prompt carries so orientation costs zero turns: a bounded directory tree, code-file declaration/signature outlines (NOT bodies), test-file names, and — when the run already knows it — the failing-test summary.
packed
Package packed ships a folder of embedded text compressed, and unpacks it on the first read.
Package packed ships a folder of embedded text compressed, and unpacks it on the first read.
packed/cmd/pack command
Command pack writes the archive a packed corpus ships as.
Command pack writes the archive a packed corpus ships as.
pair
Package pair is how two machines come to trust each other without ssh, and the encrypted tunnel they talk through afterwards.
Package pair is how two machines come to trust each other without ssh, and the encrypted tunnel they talk through afterwards.
pair/cpace
Package cpace implements the CPace password authenticated key exchange (PAKE) instantiated with the ristretto255 group.
Package cpace implements the CPace password authenticated key exchange (PAKE) instantiated with the ristretto255 group.
paymentrefusal
Package paymentrefusal recognises the narrow response shape that proves a key authenticated but its account cannot fund a request.
Package paymentrefusal recognises the narrow response shape that proves a key authenticated but its account cannot fund a request.
pdfx
Package pdfx is the LOCAL RUNG of the document ladder: PDF text, extracted in this process, out of this binary, with no service to call and nothing to install.
Package pdfx is the LOCAL RUNG of the document ladder: PDF text, extracted in this process, out of this binary, with no service to call and nothing to install.
plan
Package plan builds and revises the task graph for a goal.
Package plan builds and revises the task graph for a goal.
profile
Package profile records what tasks actually cost this model, and uses it to recalibrate the ruler the planner sizes tasks with.
Package profile records what tasks actually cost this model, and uses it to recalibrate the ruler the planner sizes tasks with.
provider
Package provider is codeaf's model adapter: the one place in the process that speaks to an OpenAI-compatible endpoint.
Package provider is codeaf's model adapter: the one place in the process that speaks to an OpenAI-compatible endpoint.
provider/pool
Package pool is the surface's provider seam: the model-switchable client a slot holds, the per-model clients a pinned job is served by, and the billing that makes every structuring call land on the same rail its leaves land on.
Package pool is the surface's provider seam: the model-switchable client a slot holds, the per-model clients a pinned job is served by, and the billing that makes every structuring call land on the same rail its leaves land on.
redact
Package redact takes the SHAPE of a secret out of text before anything keeps it, shows it, or sends it to a model.
Package redact takes the SHAPE of a secret out of text before anything keeps it, shows it, or sends it to a model.
reflex
Package reflex is the per-turn tier's client: the small structured calls a conversation makes AROUND an exchange rather than in it.
Package reflex is the per-turn tier's client: the small structured calls a conversation makes AROUND an exchange rather than in it.
registry
Package registry is the one command registry established by the August 2026 chat-rebuild audit's 5.22 (no longer in the tree; "Discoverability: no typed-only actions"): every action lives on a visible object, and typing is an accelerator, never the only door.
Package registry is the one command registry established by the August 2026 chat-rebuild audit's 5.22 (no longer in the tree; "Discoverability: no typed-only actions"): every action lives on a visible object, and typing is an accelerator, never the only door.
relay
Package relay is the blind pipe between a machine that runs codeaf and a machine somebody is sitting at.
Package relay is the blind pipe between a machine that runs codeaf and a machine somebody is sitting at.
release
Package release tests the release workflow and installer as one public distribution surface.
Package release tests the release workflow and installer as one public distribution surface.
remote
Package remote is the wire between a surface on one machine and an engine on another.
Package remote is the wire between a surface on one machine and an engine on another.
resident
Banking: what an attempt that died on the clock hands to the one that takes over from it.
Banking: what an attempt that died on the clock hands to the one that takes over from it.
revision
Package revision is the engine half of a job's second thoughts: the gate that decides whether a deliverable is done, the citation invariant that decides whether a named gap may buy more work, the judgements that decide who takes a retry and whether an exhausted leaf left anything behind, and the sentinel pass that edits a job's remaining plan in light of what just landed.
Package revision is the engine half of a job's second thoughts: the gate that decides whether a deliverable is done, the citation invariant that decides whether a named gap may buy more work, the judgements that decide who takes a retry and whether an exhausted leaf left anything behind, and the sentinel pass that edits a job's remaining plan in light of what just landed.
roles
Package roles is the model-role registry: one name for every auxiliary LLM call the surface makes, and one rule for which model answers it.
Package roles is the model-role registry: one name for every auxiliary LLM call the surface makes, and one rule for which model answers it.
router
Package router turns one model into a panel of them.
Package router turns one model into a panel of them.
rtk
Package rtk puts a compressor between a leaf's shell and the work model's context.
Package rtk puts a compressor between a leaf's shell and the work model's context.
sanitize
Package sanitize is the one output chokepoint for terminal-unsafe text (the August 2026 chat-rebuild audit, no longer in the tree, Part 10.2 items 6-7).
Package sanitize is the one output chokepoint for terminal-unsafe text (the August 2026 chat-rebuild audit, no longer in the tree, Part 10.2 items 6-7).
search
Package search is the web-search layer the v3 session agent calls through: one Provider that answers a query with a list of links, one Fetcher that turns a link into readable text, and an OPEN registry that decides which implementation of each the surface actually gets.
Package search is the web-search layer the v3 session agent calls through: one Provider that answers a query with a list of links, one Fetcher that turns a link into readable text, and an OPEN registry that decides which implementation of each the surface actually gets.
session
artifacts.go is the global deliverables index (docs/CHAT-V3.md, Decision 26): one append-only JSONL file under the v3 home, one row per thing the harness produced FOR the person — a generated image, an export, a finished document.
artifacts.go is the global deliverables index (docs/CHAT-V3.md, Decision 26): one append-only JSONL file under the v3 home, one row per thing the harness produced FOR the person — a generated image, an export, a finished document.
shaped
Package shaped is the one place the harness asks a model for an answer of a stated shape and reads what comes back.
Package shaped is the one place the harness asks a model for an answer of a stated shape and reads what comes back.
splitgate
Package splitgate is the enumeration evidence gate: does a piece of work name enough independent items for dividing it to beat one worker doing them in order?
Package splitgate is the enumeration evidence gate: does a piece of work name enough independent items for dividing it to beat one worker doing them in order?
standing
Package standing is the ambient side of v3: the things a conversation leaves behind that keep working after the window is closed — a reminder, a watch, a rule, an overnight job — and the small, honest machinery that wakes them.
Package standing is the ambient side of v3: the things a conversation leaves behind that keep working after the window is closed — a reminder, a watch, a rule, an overnight job — and the small, honest machinery that wakes them.
store
Package store owns codeaf's durable, append-only task graph.
Package store owns codeaf's durable, append-only task graph.
subharness
Package subharness is the registry of node kinds a sub-harness is built from, and the durable home of the sub-harnesses themselves.
Package subharness is the registry of node kinds a sub-harness is built from, and the durable home of the sub-harnesses themselves.
subharness/prompts
Package prompts is where the designer's brief LIVES, as prose, so that the hardest writing in this system is edited as writing rather than as a builder full of Fprintf calls.
Package prompts is where the designer's brief LIVES, as prose, so that the hardest writing in this system is edited as writing rather than as a builder full of Fprintf calls.
substore
Package substore is where subharness bundles live on disk.
Package substore is where subharness bundles live on disk.
taxonomy
Package taxonomy is the response boundary: the one place in this build that answers "what kind of failure was that?" and hands back what to do about it.
Package taxonomy is the response boundary: the one place in this build that answers "what kind of failure was that?" and hands back what to do about it.
telemetry
Package telemetry implements codeaf's anonymous usage counting exactly as docs/TELEMETRY.md spells it: four typed events, an allowlisted property set, a local spool, and one deadline-bounded flush.
Package telemetry implements codeaf's anonymous usage counting exactly as docs/TELEMETRY.md spells it: four typed events, an allowlisted property set, a local spool, and one deadline-bounded flush.
thread
Package thread owns the single door for durable conversation writes.
Package thread owns the single door for durable conversation writes.
trace
Package trace is the record of everything one run did, kept only when somebody asked for it.
Package trace is the record of everything one run did, kept only when somebody asked for it.
tui2/modelui
Package modelui holds the words a model's name is spelled with.
Package modelui holds the words a model's name is spelled with.
tui2/prose
Package prose renders model-written markdown into styled terminal rows.
Package prose renders model-written markdown into styled terminal rows.
tui2/reltime
Package reltime is the one relative-time formatter in the product.
Package reltime is the one relative-time formatter in the product.
tui2/tokens
Package tokens is the shared token layer for the chat surfaces: the one place a colour, a glyph, or a formatted live cell is named.
Package tokens is the shared token layer for the chat surfaces: the one place a colour, a glyph, or a formatted live cell is named.
tui3
Package tui3 is the v3 chat surface in its first, linear form: a try-out door onto internal/session and nothing else.
Package tui3 is the v3 chat surface in its first, linear form: a try-out door onto internal/session and nothing else.
update
Package update finds, installs, and restarts onto codeaf releases.
Package update finds, installs, and restarts onto codeaf releases.
verify
Package verify discovers the project-wide build and test entrypoints that form the session-end machine verification floor, runs one of them, and reads the failing test names out of what it printed.
Package verify discovers the project-wide build and test entrypoints that form the session-end machine verification floor, runs one of them, and reads the failing test names out of what it printed.
video
Package video is the LOCAL half of codeaf's video work: the things done to files that already exist, on this machine, with ffmpeg — as against the renders bought from a provider a clip at a time (internal/session/tools_video.go).
Package video is the LOCAL half of codeaf's video work: the things done to files that already exist, on this machine, with ffmpeg — as against the renders bought from a provider a clip at a time (internal/session/tools_video.go).
watchdog
Package watchdog keeps standing watches available when no codeaf terminal is open.
Package watchdog keeps standing watches available when no codeaf terminal is open.
wirelog
Package wirelog counts what the surface actually puts on the wire.
Package wirelog counts what the surface actually puts on the wire.
workspace
Package workspace retains logical organization independently of the records it groups.
Package workspace retains logical organization independently of the records it groups.
test
remote/stub command
Command modelstub is a scripted, deterministic stand-in for the model endpoint, so that the two-machine harness in internal/e2e/remote_test.go can drive a REAL turn without an API key and without a network.
Command modelstub is a scripted, deterministic stand-in for the model endpoint, so that the two-machine harness in internal/e2e/remote_test.go can drive a REAL turn without an API key and without a network.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL