Tally
Meetthe CFO for your agent fleet

Coding agents, on a budget.

Tally routes each GitHub issue to a cost-effective model, caps what the task may spend, and opens a pull request only when your tests pass.

npm install -g tally-agents

Read the getting-started guidenpmGitHub

Walkthrough

Watch a first run

What it does

Five steps for every issue

  1. Route

    Routes each GitHub issue to a cost-effective model.

  2. Cap

    Caps spend per task, and stops the agent at the ceiling.

  3. Escalate

    Escalates to a stronger model if needed, on the same branch.

  4. Verify

    Verifies the change by running your tests itself.

  5. Pull request

    Opens a pull request for the work that passed.

On three real tasks, everything on the top model cost $1.22; through Tally the same tasks cost $0.31 and $0.43 on two passes, every task passing each time.
  • Top model for everything$1.22
  • Through Tally, first pass$0.31
  • Through Tally, second pass$0.43

Three tasks, one run each, estimated at list price. The full numbers and their limits.

Tally never merges. That decision stays with you.

A real run

One issue, one cent

This is the terminal from a real run on Vaibhaav-Tiwari/chip-design-groundup. Tally sized issue #17 as small, sent it to the cheapest tier with a $0.30 ceiling, watched the spend, and opened pull request #18 for $0.0109, estimated at list price.

$ tally init

Tally init proposed changes:

Runner: direct (one task at a time)

Repository: Vaibhaav-Tiwari/chip-design-groundup (base: main)

Tier cheap: codex/gpt-5.6-luna (tui)

Integrations:

Neatlogs on

Entire off

cfo.ai on

Apply these changes? y/N [N]: y

$ tally run --budget 1

Budget availability

Monthly remaining: $40.00 of $40.00 (cfo.ai)

Run cap: $1.00 (CLI --budget)

Available now: $1.00

#17: small (confidence 0.74) -> cheap codex/gpt-5.6-luna ceiling $0.30

#17 attempt 1: worker 01a12b0f… started on cheap

#17 attempt 1: spend $0.0029

#17 attempt 1: spend $0.0061

#17 attempt 1: spend $0.0109

#17 attempt 1: passed $0.0109 (Tally committed task changes as 297c70d…) chip-design-groundup/pull/18

Run summary

Tasks: 1 passed, 0 failed, 0 skipped

Total spend: $0.0109

Run cap: $1.00

The logo is the command line's own animation, frame for frame. The lines below it are from the real run that opened pull request #18, with other lines left out and long ids shortened.

The ledger

Every attempt, written down

The dashboard is a read-only page over two files Tally writes as it works. Here Tally is working on its own repository: run run-20261012-211342Z spent $1.05 against a $15.00 cap, with 3 of 5 tasks passing. Task #171 stopped on cheap, continued on middle and passed, producing pull request #173.

Tally self-host dashboard: 3 of 5 tasks passed, $1.05 spent against a $15 cap, $0.35 per passed task

Integrations

Three switches, one run

Tally runs on its own. Each of these adds something to the same run when it is on.

Entire

Off. A task is sized by a search of the repository.

On. Sized from the code graph, and a checkpoint is attached to each commit.

neatlogs

Off. No trace.

On. A decision trace and a worker trace id on every ledger row.

cfo.ai

Off. The budget is typed into tally.yaml.

On. The live monthly budget is read from cfo.ai; spend is written back and reconciled to the ledger.

Shown exactly as this run was recorded.

Task
#17 Document section deep links in one standalone reference
Size
small
Sized from
the issue text and a search of the repository
Model
cheap tier, codex/gpt-5.6-luna
Cost
$0.0109 of a $0.30 ceiling
Result
passed, pull request #18
Checkpoint
none
Decision trace
0d5826efa109e27125df7ce43b766572
Worker trace
028d92600350d1be5cc76b4cc35d10be

Budget

$40.00 a month

read live from cfo.ai

$0.0109 for this run, written back to cfo.ai and reconciled to the ledger

Values are from run-20261011-130259Z, the run behind pull request #18. It ran with Entire off, neatlogs on and cfo.ai on. In any other setting the panel shows what Tally would record differently; it shows no ids or amounts that run did not produce.

Agent Orchestrator

In parallel through Agent Orchestrator, or one at a time

Agent Orchestrator mascot

With Agent Orchestrator

Tally can run agents in parallel, each in its own AO session and worktree. It is opt-in (tally run --parallel 3) and stays inside one budget: each task's ceiling is reserved before it starts.

Without it

Tally runs Claude Code or Codex directly, one task at a time. Parallel runs need Agent Orchestrator.

tally init detects which you have. Mascot from OrchestratorInc/agent-orchestrator, Apache-2.0.

neatHack 2026

For the judges

One block per judging criterion, with its weight and its wording. Everything shown is from a real run or the public repository and can be opened. Where evidence does not exist yet, the slot says so.

30%

The agent

“How well the agent, or the system of agents, handles a substantial task from start to finish.”

Four ways to run an agent, each ending in a real pull request

  • Codex through Agent Orchestrator$0.0121PR #10
  • Claude Code through Agent Orchestrator$0.0871PR #13
  • Claude Code, direct$0.0765PR #14
  • Codex, direct$0.0109PR #18

One task each on Vaibhaav-Tiwari/chip-design-groundup. Cost per run, estimated at list price.

Stopped at its ceiling, then finished by a stronger model

  1. stoppedCheap tier: $0.0196 spent against a $0.018 ceiling.
  2. escalatedThe next model up continued on the same branch.
  3. passedMiddle tier: $0.170. Tally opened fly-doom-jev PR #17 unattended.

Run run-20261012-100856Z. An earlier run, run-20261010-201255Z, did the same with a ceiling set low on purpose: stopped at $0.0153 against $0.0150, then passed for $0.0815, PR #14.

Three agents at once, inside one budget

Run run-20261011-190131Z went through Agent Orchestrator with three Codex workers at once (tally run --parallel 3). Issues #19, #20 and #21 started within the same second, all passed on the cheap tier, and the three sessions overlapped for 70 seconds.

Total $0.0411, estimated at list price, against a $2.00 cap. cfo.ai spend rose by exactly the ledger total. Tally merged none of them.

Measured: the same three tasks, with and without Tally

On three real tasks, everything on the top model cost $1.22; through Tally with neatlogs history enabled, the same tasks cost $0.43. All three passed in both runs: about 65% lower estimated cost on this sample.

  • Everything on the top model$1.22small $0.458, medium $0.416, large $0.343. 3 of 3 passed.
  • Through Tally, with trace history from neatlogs$0.43small $0.012 and medium $0.020 on the cheap tier, large $0.395 on the top tier. 3 of 3 passed.
  • Three tasks on fly-doom-jev, one run each, from the same starting commit, each verified by the repository's tests. No pull requests were opened.
  • Costs are estimates at list price.
  • This compares top-tier execution with Tally, not an isolated measurement of the benefit of history. The full three-pass results and caveats remain available.
  • Trace history changed one cost estimate and no tier or ceiling.
  • cfo.ai was off for these runs.
  • In all three passes each task's first start failed before using any tokens and was retried; those attempts cost $0.00 and are in the ledgers.

A ceiling set from trace history

On a real run on 12 October, Tally set a task's ceiling from its neatlogs history: 6 similar attempts, all passed, at about 1 cent on average. The ceiling was $0.0228 where the configured one was $0.30, and the task passed at $0.0182.

One task, one run. It is a separate run from the three-pass comparison above, where trace history changed no ceiling.

A1Self-host run budget: $1.05 spent of $15, with 3 of 5 tasks passed
Self-host run: $1.05 of $15.00; 3 of 5 tasks passed
A2Integration status and task #172 skipped because its reservation did not fit; neatlogs notes a worker trace still indexing
Connected integrations, pending trace detail and a budget-protected skip
A3Task #171 stopped at its learned cheap ceiling and passed after escalation to middle, with both attempt rows shown
#171: cheap stopped at $0.02725; middle passed. PR #173
A4Entire graph for task #171: one target file, 70 dependents and tests; edited target and test marked against predicted files
Entire graph: predicted impact against actual target and test edits
Show details
  • Run ids: run-20261011-092229Z, run-20261011-123546Z, run-20261011-123814Z, run-20261011-130259Z.
  • Tally verifies each change by running the repository's test command itself, then opens the pull request. It never merges.
  • 882 automated tests pass on the branch this page was built from.
  • Not proven in a real run yet: escalation on the direct runner. Parallel runs are through Agent Orchestrator only. The README keeps the list.

25%

Use of neatlogs, Entire and cfo.ai

“How effectively you used neatlogs, Entire and cfo.ai to build, improve and plan a business around the agent.”

neatlogs

Every ledger row carries a decision trace and a worker trace, read back from neatlogs after the run.

decision 0d5826efa109e27125df7ce43b766572
worker 028d92600350d1be5cc76b4cc35d10be

From the PR #18 run. Trace pages need a neatlogs login.

Entire

185 of 377 commits on main carry an Entire checkpoint. The stop-and-escalate run handed the stopped attempt to the next model through an Entire handoff.

Counted from git log at commit fdfc743.

cfo.ai

The monthly budget, $40.00, was read live from cfo.ai at the start of the run. Spend was written back after it and matched the ledger to the cent on each run.

The business plan is public: docs/BUSINESS_PLAN.md. It also sits beside the budget in cfo.ai as “Tally business plan”: share-of-savings pricing, unit economics, a funnel and a measured price gap, with every assumption labelled as one. The measured comparison table is on that cfo.ai page too.

20%

Demo video

“How clearly the demo video explains the agent and your use of neatlogs, Entire and cfo.ai.”

Watch the walkthrough in the video frame near the top of this page.

15%

Building in public

“How you shared your project with other people while you built it.”

The repository, in the open from the first commit

377 commits and 143 merged pull requests on Vaibhaav-Tiwari/neatlogs-hack, the first on 10 October 2026 at 13:57 IST. tally-agents 0.2.0 is on npm, with direct runners, parallel runs through Agent Orchestrator, routing driven by trace history with learned ceilings, and evidence links on the pull requests it opens.

Shared while we built

Tally is open source and published on npm: the code and an installable product are available for anyone to inspect and try. Alongside that public build, we shared progress on X.

Explore the open-source project · Install tally-agents from npm

10%

Usefulness and originality

“Whether the agent solves a problem that people have, in a new way.”

A spending limit per task, not per person

Each task gets its own ceiling before it starts, a cheaper model is tried first only when that is the lower expected cost, and an agent that crosses its ceiling is stopped. The ledger ties every attempt to its tokens, its cost and its pull request.

Who is asking for this

20 companies have engineering job posts that name coding agents such as Claude Code, Codex or Copilot, found with a CrustData search on 11 October 2026.

This is hiring intent, not confirmed use, and it is not a market size.

A measured comparison is in the 30% block.