The intended first move is initialize_project_context, which returns a complexity assessment and guidance along with the plan file; get_full_code_context then fills in the functions and classes underneath. The scanning is Rust rather than Python, which is what makes a whole-project pass something you can repeat rather than do once and cache.
A local Python server with a Rust file scanner behind it: it walks a project directory, extracts files, functions and classes, and returns that as project context, alongside fast project-wide search.
- A project initialised from an absolute path, with `plan.md` read or created and a complexity assessment returned
- Full code context extracted recursively — files, functions and classes
- Scanning depth, file extensions and output verbosity all configurable
- Fast project-wide search for a string or pattern
- Parsers for Python, Rust, C# and TypeScript/JavaScript
- The file walking and parsing done in Rust, called from the Python server over a C FFI layer
Python for the server and the built Rust file-scanner library alongside it. It takes an absolute path to a project directory, so it only reads code on the machine it runs on. The initial scan has a timeout defaulting to 10 seconds, worth raising for large repositories.
