Show HN: Ouroboros – a trace of every call so an LLM stops guessing, 8 languages
Ouroboros is a debugging tool that instruments source code to record the input and output of every function call during a program's execution. It operates without requiring a debugger or profiler, allowing the program to run at full speed while generating a trace file that explains specific runtime behavior. The tool supports eight programming languages and is designed to help developers understand why a program produced a specific result by capturing the exact data flow of that instance.
- ▪Ouroboros adds recording logic directly to source files, creating a debug.info file that logs entry and exit points for each function call.
- ▪The tool is distinct from debuggers and profilers because it runs unattended at full speed and focuses on data values rather than time consumption or step-by-step execution.
- ▪Installation is available via uv, Homebrew, asdf, or container images, and the tool supports eight different programming languages.
- ▪The generated trace includes timestamps, function names, arguments, return values, and execution duration for each call in the program's call stack.
Hacker News (AI / LLM) files mainly under ai. We currently carry 4,505 of its stories.
Story provenance
Source · retrieval · rights · ranking — open for full record
inspect →
Story provenance
Attribution is not the same as permission. This drawer separates discovery metadata, excerpts, WeSearch-generated summaries, reuse status, and whether the publisher receives the visit. Nothing here claims a legal grant the publisher has not made.
Record
| Original publisher | Github |
| Canonical URL | https://digitable-lol.github.io/ouroboros/ |
| Publication time | Fri, 11 Sep 2026 15:01:48 +0000 |
| Retrieval time | 2026-09-11T15:02:50.591Z |
| Last seen | 2026-09-11T15:02:50.591Z |
| Headline source | Publisher (no WeSearch rewrite) |
| Excerpt source | publisher body |
| Excerpt method | First ~120 words (~800 chars) of extracted publisher body, fair-use limited. |
| Summary | WeSearch · cerebras-chat (WeSearch summarizer) |
| Summary source text | contentText |
| Citation coverage | Summary is a WeSearch-generated derivative; primary citation is the original publisher URL. |
| Cluster | LornZKleVFb- · 1 stories |
| Cluster logic | Grouped by semantic title/content similarity across sources within a rolling window. Same-publisher template collisions are excluded from coverage comparison. |
| Ranking reason | Story pages are not engagement-ranked. Hub feeds use recency, with optional source-diversified chronological ordering (cap consecutive stories per source). No personalized ranking. |
| Publisher visit | Yes — open original |
| Substitutes article? | No — link-out required for full text |
Rights status (four layers)
WeSearch handling by dimension
| Indexing | May the item be indexed (stored, ranked, made findable)? | Allowed |
| Snippet | May a short excerpt of the publisher's text be shown? | Allowed |
| AI summary | May WeSearch generate its own short summary of the article? | Limited |
| Retrieval / RAG | May the content be exposed for third-party retrieval-augmented generation? | Not asserted |
| Model training | May the content be used to train AI models? | Not asserted |
| Commercial reuse | May the content be reused commercially? | Not permitted |
Basis: Derived from the published RSS/Atom feed. Contact: [email protected]. Reviewed: 2026-07-24.
Opening excerpt (first ~120 words) tap to expand
Your program printed a number. Ouroboros tells you where that number came from.A shop program was asked for the price of an order and answered Total: 51.80. The customer had been promised free delivery over 50.00, and their goods came to 52.00. They were charged for delivery anyway.The printed line does not say why. The source code says what the program may do — every branch, every case, including the ones that did not happen on this run. Neither of them says what the program did on this run, with these numbers.Ouroboros answers that, and only that. It adds recording to your own source file. You then run the program the ordinary way, and every call leaves two lines behind: one when it is entered, one when it comes back.Not a debugger. Nothing to attach to, nothing to step through.
…
Excerpt limited to ~120 words for fair-use compliance. The full article is at Github.