# Kolo: a Python tracer whose GitHub repository holds no Python

> Kolo records every executed function call, return value, local variable and HTTP request into greppable trace files for humans and agents. The implementation is not in this repository, there is no licence file, and the documented integration is Django middleware.

**koloai/kolo** — Kolo is a text-based Python debugger for AI agents. Capture every executed function call, return value, local variable, HTTP request, and more in greppable trace files.

- Repository: https://github.com/koloai/kolo
- Website: https://kolo.app
- Stars: 525 · Forks: 13
- Language: Unknown
- License: not declared
- Published: 2026-09-10 · Updated: 2026-09-10 · Language: en
- Canonical page: https://hysenlabs.com/projects/koloai-kolo

## The repository contains a README, a plugin manifest and skills

The top level of this project has three entries: the README, a directory named .claude-plugin, and a directory named skills. There is no source directory, no tests directory, no packaging file and no CI configuration. The language recorded for the repository is unknown, which is what you would expect from a tree of Markdown and JSON. Yet the summary describes a Python debugger that captures every executed function call, return value, local variable and HTTP request. The conclusion is not ambiguous: the debugger is distributed as the kolo package on PyPI, and this repository is its front door. For a project with 525 stars and 12 forks that is a workable arrangement, and for a reader who wants to audit what an agent is allowed to capture, it means the audit has to happen in the installed package.

## No licence file, no stated terms

The repository records no licence, and there is no LICENSE file at the root of a tree that contains only three entries. The rest of the project's surface looks like a commercial product rather than an open-source one: a homepage, a documentation site, a Discord invite, a support email address and a scheduling link for a setup session. The README never states terms of use, and it does not say whether the package on PyPI carries its own licence separate from this repository. None of that makes the tool unusable. It does mean the question cannot be answered by anything a reader can check, and that anyone planning to put it into a commercial codebase, or into a client project, has to ask first. Worth noting that the page also carries no release history here, so there is no changelog on this side to date the terms against either.

## The documented integration is one middleware line

The quickstart is four steps and three of them are about your own project rather than Kolo. Install the package, add its middleware class at the top of your middleware list in settings.py, start the Django development server, and make a request to any page. The class name is quoted in the instructions as kolo.middleware.KoloMiddleware, and the position matters, since the page says to put it at the top of the list so that it wraps everything below it. After that, the trace for the request you just made is served from a path under the application's own address, on a reserved prefix at the development server's port 8000. There is a longer tutorial on the documentation site for the same flow, and there is a hosted playground if you would rather see what the trace looks like before installing anything.

## The trace endpoint lives inside your app's URL space

That routing choice deserves a second look. The captured material, by the project's own description, includes every function call that executed, its return value, every local variable in scope at the time, and outgoing HTTP requests. Local variables and request payloads are exactly the things that carry credentials, tokens and personal data, and the trace viewer is mounted at a path inside the application you are debugging rather than on a separate local tool. The page describes no authentication on that route and no way to disable it once the middleware is installed, and the instructions are written for a development server. Nothing here says the middleware belongs in a production stack, but nothing says it does not, so the safe reading is to treat the trace view as sensitive and keep the server it is mounted on reachable only from your own machine.

## v3 changed the artefact, and the two descriptions do not fully agree

The notice at the top of the page is the most consequential line in it. Version 3 is described as storing trace data as plain text files that are searchable by humans and agents alike, with a changelog link anchored at that version. The repository summary matches that framing, calling Kolo a text-based Python debugger for AI agents. The rest of the page does not. The headline still reads as trace and visualise your Python code, the quickstart still ends at a browser route where you view the traced request, and the screenshot section is organised around viewing a trace, exploring a trace, viewing a SQL query and viewing a function call, all of which are interface activities. So the product is described in two places at once: a file you grep, and a web view you browse. Check the changelog before you build tooling on either.

## The screenshots come from other people's applications

Every visual reference on the page points outside the project. The image at the top is a screenshot of Kolo taken from someone else's demo repository, a todo application, and the gallery section credits a separate real-world Django application hosted on its own domain. The four headings in that section are then followed by no images at all in the copy of the page reviewed here, so what the gallery actually shows cannot be confirmed from it. That pattern is consistent with a project whose demonstration surface is a running application rather than a fixture inside the repository. It is worth knowing before you judge the tool from the README, because none of the visible evidence was produced by the project itself.

## Support is offered by Discord, email and a scheduling link

The support section lists four channels in one short block: a Discord invite, an issue tracker, a support email address, and a link to book time with one named person for help getting set up. The last of those is the unusual one, since a scheduling link in an open-source-style README implies help that goes beyond answering questions, and there is no maintainer statement, contributor guide or code of conduct in the three entries at the repository root. The last recorded push is 2026-04-17, and no GitHub release has ever been published here, so versions arrive through the package index rather than through tags you can read on this side. If you are evaluating it, expect to be the person who decides whether the trace data is acceptable to capture.

## Conclusion

Kolo is worth a try if you are debugging an agent or a Django request and want a record you can grep instead of a log you can scroll. Set your expectations from two facts. The debugger ships as a PyPI package, so you are trusting a wheel rather than reading a source tree, and there is no licence in the repository, which is worth resolving before it goes anywhere near client code. If you try it, mount the middleware in a local environment, keep the trace endpoint on the loopback interface, and read the v3 changelog first, because the artefact this tool produces changed shape recently.

## FAQ

### What does Kolo capture when it traces Python code?

Every executed function call, its return value, local variables in scope at the time, and outgoing HTTP requests. Version 3 stores that trace data as plain text files described as searchable by humans and agents alike, rather than only as a browser view.

### How do I install Kolo in a Django project?

Run `pip install kolo`, add "kolo.middleware.KoloMiddleware" to the top of the MIDDLEWARE list in settings.py, start the server with `python manage.py runserver`, make a request, then open the reserved trace route on port 8000. A hosted playground exists for previewing the tool first.

### Is the Kolo source code in its GitHub repository?

No. The repository contains a README, a .claude-plugin directory and a skills directory, and no language is detected in it. The debugger itself is distributed as the kolo package on PyPI, so the code you run is in the installed wheel.

### What licence is Kolo released under?

The repository records no licence and contains no LICENSE file, and the README states no terms. The project does carry a homepage, a documentation site and a support email, so ask the maintainers before using it in anything you ship.

## Sources

- [Issues](https://github.com/koloai/kolo/issues)
- [koloai/kolo on GitHub](https://github.com/koloai/kolo)
- [Project website](https://kolo.app)
- [README](https://github.com/koloai/kolo/blob/main/README.md)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/koloai-kolo
