Skip to content

v0.3.0

Choose a tag to compare

@only-cli only-cli released this 23 Aug 13:23
· 66 commits to main since this release

0.3.0 is about the cost of a second command. A page view was already cheap; answering a real question was not, because it took several commands, and inside an agent session one tool call costs far more than the page it prints. This release makes the first command the answer more often, and makes what it prints something an agent can act on without checking.

Fewer turns

  • A search result title is a link, so oc do <n> on it opens the result. Headings lost their inner anchor during distillation, so do read the title back and the agent spent another turn hunting for a number that navigates. A heading whose only link is a permalink to its own id, which is every heading on a docs page, still reads instead of refetching the page already open.
  • oc find <query> with a single match prints that region. One match is the answer, not an index, and the next command was always the read that looks.
  • oc find prints whole matches instead of snippets when they all fit inside the allowance a page already gets for finishing.
  • Truncation ends where a sentence ended, or where a line ended in code, so the half that is shown can be trusted on its own.

Measured end to end with an interleaved A/B, four reps per task, frozen builds and correct answers throughout: 64 turns down to 49, 40 commands down to 25. Eight of eight paired reps improved and none regressed.

Code you can run

A syntax highlighter gives every token of a command its own element, so the AWS CLI reference used to hand over aws s3 cp test . txt s3 : // amzn - s3 - demo - bucket / test2 . txt, and Node's docs handed over console . log and fd ?. close (). Any command or snippet taken from a docs page was wrong, and nothing in the output said so. Of 172 code blocks across the AWS CLI reference, the Rust book, the Node API docs and the Python library docs, 159 are split this way.

A code block is now read whole, keeps its lines and its indentation, and leaves the page's own copy buttons and language labels behind. Inline code is fixed by the same change: Byte ( u8 only) is Byte (u8 only) again.

JSON APIs

  • A JSON resource is read as the resource, not as the array beside it.
  • Nested objects render as fields instead of collapsing.
  • JSON API responses render as pages at all, which is new in this line.

Sites

Docs search for the AWS, GCP, and Azure CLIs.

Fixed

  • Binary responses are refused on the impers transport too.
  • A node_modules symlink that 0.3.0-beta.1 packed by accident is gone.
  • Both transports now share one redirect loop, so the check that revalidates every hop cannot be fixed in one copy and left broken in the other. It is proven offline, against a transport that never leaves the process, instead of against a third party's uptime.

Install

npm install -g @only-cli/oc

The skill and the Claude Code plugin both move to 0.3.0.