Skip to content

Supported stacks

Aburi ships as a small CLI plus plugins. Install the ones that match your project. aburi init --with-suggestions will name them for you.

Languages

You need one language plugin per language in the repository.

PackageCovers
@aburi/lang-typescript.ts, .mts, .cts, .tsx, .js, .mjs, .cjs, .jsx

Parsing runs on tree-sitter WASM, so you get no native build step and no compiler in the loop.

Python, Go, and a functional language are planned. See the roadmap.

Frameworks

A framework plugin is what turns a class into "an HTTP endpoint" in the report. Install as many as apply. They do not conflict.

PackageRecognises
@aburi/framework-nestjs@Module, @Controller, @Injectable, HTTP and WebSocket method decorators, guards, interceptors, pipes, filters
@aburi/framework-nextApp Router files (page, layout, route, template, loading, error, not-found) and the "use client" / "use server" directives
@aburi/framework-expressRouter instances, route handlers, middleware, error handlers, mount points
@aburi/framework-reactFunction components, custom hooks, contexts and providers, forwardRef, memo, higher-order components

Nothing here fits? For a decorator-based framework, frameworkHints covers you from config. For anything else, write a plugin.

Effects

An effects plugin is what lets the report say "this method now writes to the database". Without one, Aburi still records the call, but attaches no meaning to it.

PackageDetectsReported as
@aburi/effects-prismaprisma.<model>.<verb>, $transactiondb.read, db.write, db.transaction
@aburi/effects-drizzledb.select / insert / update / delete, query.<table>.findMany, transactiondb.read, db.write, db.transaction
@aburi/effects-trpctRPC client calls and the React Query hook surfacenetwork.rpc
@aburi/effects-nestEventEmitter2 / eventBus .emit(...)event.publish

Aburi detects an effect at the call site. A method that calls a repository method that writes to the database does not yet inherit db.write. Propagation along the call graph is on the roadmap.

Example setups

bash
pnpm add -D @aburi/cli @aburi/lang-typescript @aburi/framework-next @aburi/framework-react @aburi/effects-drizzle
bash
pnpm add -D @aburi/cli @aburi/lang-typescript @aburi/framework-nestjs @aburi/effects-prisma @aburi/effects-nest
bash
pnpm add -D @aburi/cli @aburi/lang-typescript @aburi/framework-express

Released under the Apache License 2.0.