Clinescope
Clinescope is an independent, unofficial tool - not affiliated with, endorsed by, or sponsored by Cline or Cline Bot Inc. "Cline" is a trademark of Cline Bot Inc., used only to describe compatibility.
Clinescope runs on the Cline CLI and the VS Code extension. Run clinescope --vscode to auto-discover and score a VS Code extension session (see Score a VS Code extension session).
Clinescope reads the log of one Cline run and scores it on six checks.
| Check | What it tells you | What it does not tell you |
|---|---|---|
tool_selection |
Whether the agent used the tools you listed after --expected. |
Whether it gave those tools the right inputs. |
tool_input |
Whether some editor call carried an input you named after --expected-input, such as a file path. |
Whether that call worked, or what the other calls sent. |
diff_coherence |
Whether the agent's first apply_patch patch is written in the format Cline expects. |
Whether that patch would apply to your file. |
diff_minimality |
Whether a patch deleted a block of lines and wrote a new one, keeping none of the old lines. | Whether that rewrite was a mistake. Sometimes it is the right move. |
apply_recovery |
After a failed apply_patch, whether a later patch to the same file went through. |
Whether the later patch fixed the problem. |
editor_recovery |
The same, for Cline's editor tool. |
The same. |
Most Cline sessions today use editor. On those runs a note: line says the three patch checks did not run, and all three show n/a.
When a run has an apply_patch, a cline_verdict line under diff_coherence shows what Cline did with that same patch: applied, rejected (with Cline's own reason), or no verdict. A patch can pass diff_coherence and still be rejected, because the check reads the patch text while Cline tries it on your file. The line is not a score.
--test-cmd TEXT adds a test_cmd line: did a command containing TEXT run after the last edit, and what did Cline record for it (success, or Cline's own error text)? It runs nothing and does not prove the fix works. Cline keeps one flag for a whole command line, so pytest; echo done can read success after pytest failed. The last edit counts any file, so a helper script written after the tests also reads not run. A not run, or a run Cline marked failed, keeps the clean run line off.
An editor_newlines line appears only when an editor call that Cline accepted replaced text that had real line breaks with one line holding literal \n instead. In one real run that call turned a whole file into one line with 78 literal \n, Python could not parse it, and every check still passed. The line keeps the clean run line off. It is not a score. It never opens the file, it does not check a new file written this way, and it does not look at later edits.
Three real captured runs; run clinescope --demo to score one yourself.
Why Clinescope
A Cline run can include a failed edit that the agent never went back to. You only find it by reading the whole log. Clinescope reads the log for you and points at the problem.
- No setup. It reads the log Cline already writes. The scores need no AI model, no API key, no network, and no other packages.
- It names what went wrong. A failed patch that was never retried, a tool you expected that never got called, a block of lines deleted and rewritten.
- It tells you what to change.
--adviceprints one instruction per problem that you can add to your prompt or your Cline rules. - It can guard your CI.
clinescope-gatefails the build when a score drops below the bar you set. - Same log, same score. No model is involved, so a score only moves when the run changed.
I read five eval tools on 2026-09-13: DeepEval, promptfoo, Langfuse, Braintrust and Inspect. None ships a built-in check for patch format, for block rewrites, or for recovery after a failed patch (sources). Clinescope does not tell you whether the code is correct. Its limits are in LIMITATIONS.md.
Get Started
-
Install Clinescope
Requires Python 3.11+ (
python --version). Install into a virtual environment; the quickstart has the create-and-activate steps for PowerShell, CMD, and macOS/Linux.python -m pip install clinescope
Install trouble (a broken
piplauncher,command not found, wrong Python)? See Install troubleshooting. -
Use Clinescope
Get the score:
Point Clinescope at a Cline log file (a
messages.jsontrace) to score the run - replacepath/to/messages.jsonbelow with your own.clinescope path/to/messages.json --expected read_files apply_patch
After
--expected, list the tools you think the task needed. Runclinescope --list-toolsto print the tools in Clinescope.Improve your prompt:
clinescope path/to/messages.json --expected read_files apply_patch --advice
Learn more in the usage guide. New to this? The quickstart walks you from installing Clinescope to scoring your own session, and step 2 links out to Cline's own docs if you still need the Cline CLI itself.
Feedback
Ran Clinescope on your own Cline trace? One question: did any score disagree with your own read of the run? Tell me which one on the feedback form. A score you think is wrong is the single most useful thing you can send, because it is the only answer that tells me something the code does not already say.
For a reproducible scorer or CLI bug, the Bug report form is a better fit. To contribute a change, see CONTRIBUTING.md for dev setup, tests, and what a scorer change needs.
License
Apache-2.0. Copyright 2026 Tran Binh Minh.
Metadata
Release files for clinescope 1.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| clinescope-1.3.0.tar.gz | 418.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| clinescope-1.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 718.2 kB
Release files / clinescope-1.3.0.tar.gz
| Download URL | clinescope-1.3.0.tar.gz |
|---|---|
| Size | 418.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1aaff18c631971ab7afbe11895dbf240998821fbd59a5b34dd93d7e0dbcaa7f6
|
|
BLAKE2b-256 checksum How to use checksums |
be60c24e6c42e60d69ab4fdef515452f5206f2a1cb58ac3ebc2b7fd0d07bb46d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.
Transparency logRelease files / clinescope-1.3.0-py3-none-any.whl
| Download URL | clinescope-1.3.0-py3-none-any.whl |
|---|---|
| Size | 299.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
be96231aa2c701bf766311d26a6ac71e9351c972023cd4de08be1717c380631a
|
|
BLAKE2b-256 checksum How to use checksums |
cd9da80cea7d359174fca4ee1795cfcf3f8c400f1d0adfaa8e1eace8c4edb2e6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.
Transparency log