Last updated October 8, 2026.

Argusic methodology

How Argusic tests whether real software runs, and how it scores AI coding agents. Every rule here is public on purpose: the whole point is that anyone can check our work. Any change to these rules goes into the changelog at the bottom, takes effect from the next testing cycle, and is never applied backward.

1. In short

2. The question this answers

Given a real open source project, can an AI coding agent, entirely on its own, install it, launch it, work through the errors, and verify the software runs, like an engineer on their first day, with no human help?

3. Why fresh projects

Static benchmarks decay as their answers leak into training data. SWE-rebench (Badertdinov et al., 2025) ran the same agents against SWE-bench Verified and against tasks collected after that benchmark was public, and the scores moved a long way: its Table 2 reports DeepSeek-V3-0324 resolving 39.7% of SWE-bench Verified and 21.3% of the time-filtered set, a gap of 18 percentage points on one model alone. Argusic tests projects that are trending within the last weeks, with a secret pool rotated monthly, so there is nothing to memorize.

4. What is measured

We measure exactly one thing: the autonomous ability to make real software run. Each agent under test is a fixed combination of a model at a pinned version, a harness at a pinned version, Argusic's standard published instructions, and identical time and resource limits. Every agent gets exactly the same conditions.

5. Agents under test

The first cycle is in progress. The list of agents publishes with the first leaderboard. Each agent is a fixed, pinned configuration presented under a neutral Argusic identity; its exact versions are recorded and held so every number on the board traces to the precise configuration that produced it, and a result can be reproduced through Argusic on request (see "How to reproduce").

6. The project pool

6a. What can be a subject

A subject is a thing an agent can be asked to set up and run. Argusic tests one kind today and is built to add others without changing anything about how a result is earned: the scoring rubric, the evidence rules, and the verdict vocabulary are identical across sources, so a number from one source means the same as a number from another.

SourceWhat "does it run" means hereState
Open source repositoryClone the pinned commit, install, launch, and verify it does the job its own README describesIn use. 3199 subjects tested
Hugging Face modelDownload the model at a pinned revision and run inference exactly as its model card documents, on a GPU worker. It runs when the documented snippet produces output on a clean machine without the tester rewriting itIn use. 1 subject tested
Hugging Face SpaceBuild and launch the Space from its own definition, then reach its interface and complete the interaction it advertisesDeclared, not started
Published package (npm, PyPI)Install the pinned version into an empty project and run the quickstart from its own READMEDeclared, not started
Vendor toolInstall and launch the vendor's own published build, following only the vendor's own instructionsDeclared, not started
Prebuilt cloud templateDeploy the template as its own listing documents and check it starts and serves the thing it advertises, without the tester patching it firstDeclared, not started
Container imagePull the image at a pinned digest and run the command its own description gives, then check it does what that description claimsDeclared, not started
MCP serverInstall and start the server as documented, connect a client, and confirm it lists and answers the tools it advertisesDeclared, not started

The State column above is not written by hand. It is read from the database each time this page is served: a source shows as in use once a published subject of that kind has a recorded run, and shows the count. That is the same rule every other number on this site follows, and it means nobody has to remember to update this page when a new source produces its first result.

Two things make a Hugging Face subject different from a repository, and both are recorded with the run rather than smoothed over. It needs a GPU worker, so its cost per attempt is higher and its budget is decided separately. And a model card often documents a snippet rather than an application, so the verified behavior is "the documented snippet produced output", not "the product works": the run page says which, in those words, and the score is earned the same way.

The table says "not started" rather than "coming soon" on purpose. A source counts as in use on the day a real run of that kind is recorded with its evidence, and not one day earlier. Until then the row is a statement of scope, never of results: no page shows a verdict, a count, a ranking, or a share card for a source that has not run, and this table is the only place a planned source is named.

7. One measurement

  1. A clean, single-use machine (its exact environment is published). It
  2. accepts no inbound connections and is destroyed when the run ends. Outbound network access is not filtered in this edition; what limits a run is the single-use machine and the model key rules below the list. The machine fetches only the pinned commit, not the project's history, which is not part of the test.

  3. The agent receives one mission: make this project work, under the standard
  4. published instructions.

  5. A time limit. Every run gets one of exactly three budgets (the table below
  6. the list), and the budget a run was given is shown on its run page.

  7. Three independent runs; the middle result counts. If the three results are
  8. more than 30% apart, the set is flagged as unstable and set aside for that cycle's board.

  9. Every run stores a full log and a complete terminal recording, published
  10. with the results.

  11. Desktop applications are launched on a virtual display inside the machine
  12. (since v1.1). "Launched" means the application's main process started on that display and stayed up, or answered a version or help command. Nothing is clicked; the measurement is whether the software comes up on a fresh machine, the same question asked of every other project. The agent is told not to send images to its model (since v1.3): the standard model accepts text only, and a screenshot attached to a message ended the session before the report.

The time budgets of item 3:

TierBudget
standard90 minutes
heavy120 minutes
gpu120 minutes

The standard budget was 45 minutes before v1.3: in the first week, 36 of 38 timeouts on one day were builds still running with the full budget used, so it was doubled. The heavy tier exists since v1.2 for a project the Owner marks heavy, or whose repository is larger than 500 MB as GitHub reports it, because a big game or desktop application needs that long to build. A project that needs a GPU gets the same 120 minutes.

The three figures above are not decoration. scripts/check-ttl-methodology.sh reads this table and compares it to the budgets the orchestrator is actually configured with, and make test fails if they disagree. That check exists because between 2026-09-06 and 2026-09-11 the GPU budget in the running system was 240 minutes while this page said 120, and nothing compared the two (ISSUE-072).

The model key. An agent needs a key to call its model, and a run executes code from an untrusted project, so that key is the credential most worth limiting. For agents that reach their model through Argusic's routing layer, every run gets its own key, created for that run alone. Spending cap on each run's model key: 3 USD. The key is deleted when the run ends, is cancelled or times out, and a scheduled sweep deletes any key that no longer belongs to a running job. If a run's key cannot be created, the run is not started and is retried; a shared key is never substituted. Agents that use their model maker's own service call it with a shared key held by Argusic, not a per-run key; moving them to per-run keys is on our backlog. The cap line above is read by scripts/check-cost-methodology.sh, which fails make test if it disagrees with the configured value, for the same reason as the time budgets.

8. Scoring, out of 100

The outcome of a run is one of these:

OutcomeMeaning
pass_fullRan and was verified for real
pass_mockRan, verified against mock services
failDid not install or did not launch
timeoutRan out of time

The four scoring lines leave some cases implicit. They are settled here rather than only in code, because a rule nobody can read is a rule nobody can check. Scoring is a deterministic program with tests covering every rule below; no AI model is involved in scoring at any point.

9. From many runs to one board score

Scoring rates one project-and-agent pair. The leaderboard needs a single figure per agent, and how those combine is a methodology choice, so it is stated here.

An agent's board score is the middle value of its per-project middle scores. We use the middle value again, rather than an average, for the same reason: one disastrous project should not drag a capable agent down, and one lucky project should not lift a weak one up.

Two kinds of result are excluded from that figure, and both are still shown on the board so the exclusion is visible, not silent: results flagged unstable (see the next section), and every result on a project flagged as under review (see environment quality control).

An agent whose results are all excluded has no board score. It is shown at the bottom with no score rather than removed, because an agent that was tested and produced nothing usable is itself a result, and hiding it would quietly flatter the field.

The pass rate counts every attempt an agent made in the cycle, including failures and timeouts. See independence and no cherry-picking below.

10. Spread and instability

Spread is the range of the three runs as a percentage of their middle value:

spread = (highest - lowest) / middle * 100

A set is flagged unstable when the spread is strictly greater than 30%. Exactly 30% is not over 30% and stays on the board. Two edge cases follow from the formula:

11. The project verdict

The board ranks agents. The verdict answers a different question, about the project itself: can a newcomer, in the form of an AI agent, make this software run today?

Testing is adaptive, because the evidence is one-sided. One pass proves the project runs; a single failure proves nothing on its own, because it may belong to the agent rather than the project.

  1. First, the standard agent runs once. Any pass ends it: a full pass gives
  2. "runs", a pass against mock services gives "runs with mocks". There is no reason to keep testing something already shown to run.

  3. If it failed, one retry on the same agent rules out a one-off fluke.
  4. If it still failed, the verdict is "could not verify", never "broken":
  5. Argusic reports what agents could do, and states exactly that (since v1.3: two complete attempts on the standard agent settle it). A stronger agent may be run on request; when it is, its pass makes the project "runs" (the record shows which agent verified it) and its failure also settles "could not verify".

A complete attempt is one whose recording shows the agent working to its own end or to the time limit. An attempt that Argusic's own tooling cut short (a harness that could not read the agent's report, an instrument error unrelated to the project) is marked invalid with the reason stored on the run, stays published with its evidence, and does not count.

The verdict is the best outcome any attempt reached:

Every attempt is published with its full evidence, whatever the verdict, with one exception: a recording that cannot be proven free of a live credential is withheld and its run is run again (section 17, "Security redaction").

12. What Argusic does not measure

To prevent misreading, we state this plainly. Argusic does not measure the long-term quality of the code an agent writes, the security of its fixes, or deep feature-level product experience. It measures one thing: the autonomous ability to make real software run.

13. Independence and no cherry-picking

14. Harness disclosure

The harness (the scaffolding, tools, instructions, and limits around the model) is public and identical for every agent in a cycle. Any difference in scores must be attributable to the agent, not the plumbing. Harness changes ship only between cycles and are recorded in the changelog.

15. Environment quality control

When a project fails across every agent, it is automatically flagged as under review and excluded from scoring until a person checks it: the failure may belong to the environment or the project rather than the agents. A shared setup problem should never be scored as an agent's failure.

16. Verification means decoding, not probing

A file existing is not a result, and reading its header is not a check. ffprobe -show_streams, file, and a byte count all report a container and decode nothing: a video whose every frame is green passes all three exactly like a good one. The rule, in force since v1.4, is that an agent reports what it decoded, never what it expected.

17. Evidence integrity

Two layers, never confused.

The evidence layer is raw and permanent: every run produces a full terminal recording of the real session, and for graphical apps a raw session video, plus complete logs. Each file is fingerprinted on arrival and stored forever. Anyone can replay the entire unedited session.

The presentation layer is derived: any social video or image is a render of the evidence. Allowed edits are speed-up, trimming for length, captions drawn from the recorded error-and-fix timeline, and voiceover. Forbidden edits are reordering events, splicing separate sessions together, hiding failures, or altering the substance of what the agent did. Every published video links back to its evidence.

Three derived transforms are applied to the recording before it is served, and none of them changes the substance of the agent's work:

One display transform applies to quoted text (Owner decision 2026-09-04): when a page shows the agent's own final-state sentence ("What the test found") or a repository's GitHub description, a dash the author typed is shown as a comma or a period so the page follows the house punctuation. The stored report, the repository record, the log, the recording, and the images rendered from the recording are untouched; the words and their order never change.

Standing rule: every number traces to a log, and every frame traces to a recording of the real session.

18. How to reproduce a result

The project side of every result is fully public: the exact commit tested, the published environment, the standard instructions, and the complete log and recording. Each run's page carries all of these. The agent is a fixed, pinned Argusic configuration under a neutral identity; Argusic holds its exact versions and can re-run a result to reproduce it. The public project list and secret-pool disclosures publish together with the first leaderboard.

19. Disputing a result

If a maintainer or a lab believes a result is wrong, they can contest it. Write to [email protected] with the run link. We review the full log and recording against the claim and reply. If the result was affected by an environment or setup problem on our side, we re-run it and correct the record with a note; if the evidence supports the original result, we explain what the recording shows. The original evidence is never edited or removed.

20. Changelog

Two dates appear on an edition and they answer different questions. Written is the day the rule was recorded in this document. In force from is the day the first run was actually measured under it, read from the run records, not from this file. They usually match. Where they do not, the run records win and are printed here, because an edition that reached the machines before it reached this page is exactly the thing a changelog exists to disclose. No edition is ever applied backward: a run keeps the rules that were in force the day it ran.

Editions v0.2 through v1.0 were all recorded on 2026-08-31, in the commit that created the first public edition; their dates below are the days the rules themselves were decided, before the first measurement.

Appendix: hardware estimates, what fits and how fast

The estimates below are printed beside the laptops and desktops for programming, AI and data science that Argusic lists.

This appendix is not part of the benchmark rules above and changes no edition: it explains the estimates Argusic prints beside laptops and desktops it lists for sale, which are arithmetic on makers' published figures, never measurements. The figures here are computed by one shared file (lib/hardware-estimates.ts), and none may change without that file and its test changing in the same commit.

Argusic's hardware listing shows, for each laptop and desktop, the largest model size it can hold and an upper bound on how fast it can generate text. Both are Estimated: they are calculated from the maker's published specifications with the formulas below. Argusic has not run a model on these machines. When Argusic does measure a machine, that figure carries the label Measured, links to its run log, and is never mixed with an estimate.

An estimate is shown only when every input is known. If the memory size, the memory type or the chip's bandwidth is missing, the page says "Unknown" rather than guessing.

Inputs and where they come from

Memory: which model size fits

A model needs room for three things.

  1. Weights. Argusic assumes llama.cpp's Q4_K_M quantization, at 4.8944 bits per weight (llama.cpp quantize README):
  2. weight bytes = parameters x 4.8944 / 8. Example, calculated and not measured: a 70B model needs 42.8 GB of weights.

  3. Context (KV cache). By NVIDIA's formula (Mastering LLM Techniques: Inference Optimization, NVIDIA Technical Blog, 2023-11-17):
  4. KV cache bytes per token = 2 x layers x (heads x head dimension) x bytes per value. Modern models share key/value heads across attention heads (grouped-query attention), so "heads" here is the number of key/value heads the model actually caches. Argusic allows 8,192 tokens of context at 16-bit precision (2 bytes, llama.cpp's default cache type), using the published configuration of one open dense model per class: Qwen3-8B, Qwen3-14B, Qwen3-32B, Qwen2.5-72B-Instruct and Mistral-Large-Instruct-2411.

  5. Runtime overhead. Argusic allows 1 GB for the inference runtime's own buffers.

The 8,192-token context and the 1 GB overhead are Argusic's allowance, a policy choice rather than a measurement. Longer contexts need more memory; a model that fits here may not fit with a much longer conversation.

How much of the machine's memory counts. All of a discrete GPU's VRAM counts. Of unified or system memory, Argusic counts 75% and leaves 25% for the operating system and other programs. This matches what AMD states for its own unified-memory chips: up to 96GB of 128GB can be converted to VRAM (AMD), and 64GB allows up to 48GB (AMD).

Memory sizes are read as 10^9 bytes per GB, the same unit makers use for bandwidth. Memory is actually sized in binary units, so this understates capacity by about 7% and makes every fit slightly conservative.

The resulting requirement for each class, calculated from the rules above:

ClassWeights (Q4_K_M)Context allowanceOverheadNeedsVRAM fromUnified memory from
7-8B4.89 GB1.21 GB1 GB7.10 GB7.10 GB9.47 GB
14B8.57 GB1.34 GB1 GB10.91 GB10.91 GB14.54 GB
27-32B19.58 GB2.15 GB1 GB22.73 GB22.73 GB30.30 GB
70B42.83 GB2.68 GB1 GB46.51 GB46.51 GB62.01 GB
120B and up73.42 GB2.95 GB1 GB77.37 GB77.37 GB103.16 GB

So, for example, an 8GB GPU holds the 7-8B class, a 24GB GPU the 27-32B class, and 64GB of unified memory the 70B class. A machine below the first row is shown as fitting none of the classes.

Speed: an upper bound, not a prediction

Generating each token requires reading every weight of the model from memory once, so text generation is limited by memory bandwidth (NVIDIA: "Model execution is frequently memory-bandwidth bound"). That gives a ceiling:

tokens per second, at most = memory bandwidth / weight bytes.

Example, calculated and not measured: a chip with 546 GB/s running an 8B model at Q4_K_M (4.89 GB of weights) cannot exceed about 111 tokens per second.

Real speed is lower, always. The bound ignores the time spent reading the context, computation, and software overhead. Measurements collected in llama.cpp discussion #4167 show speed rising with bandwidth but below linear. For Llama 2 7B at Q4_0 on Apple silicon: M3 Max (400 GB/s) 66.31 tokens per second, M4 Max (546 GB/s) 83.06, M2 Ultra (800 GB/s) 94.27. Going from 400 to 546 GB/s (1.37 times the bandwidth) gave 1.25 times the speed; doubling to 800 GB/s gave 1.42 times. Read the bound as "this machine cannot be faster than this", never as "this machine runs at this speed".

The bound assumes a dense model, where every weight is read for every token. Mixture-of-experts models read only the experts active for each token, so they can run faster than the bound for their total size suggests.

Model memory per dollar

One sort order of that listing is model memory per dollar: gigabytes of model memory (VRAM, or unified memory) divided by the current Amazon price, with the price's date shown. It answers "what holds the largest model for this money". It is not a quality or speed ranking, and a commission never changes it.

What these estimates are not