Commiter CLI — scan repositories and enrich architecture snapshots on commiter.dev
Project description
commiter-cli
Scan a repository, detect the structure (pages, components, API endpoints, DB ops, middleware), and either print it to your terminal or upload an enriched, shareable architecture map to commiter.dev.
pipx install commiter-cli
Or plain pip:
pip install commiter-cli
Quick start
commiter . # print a structured summary of the repo in your current dir
commiter . --format markdown # write it to stdout as Markdown, ready to paste in docs
commiter . --format ai # dump as LLM-ready context (paste into Claude/GPT/etc.)
commiter . --endpoints # list all detected API endpoints
commiter . --calls users # list frontend API calls whose URL matches "users"
commiter . --db # list all detected DB operations
Share an interactive architecture canvas
commiter --login # one-time browser auth against commiter.dev
commiter . --enrich # upload the scan, get a shareable URL back
Unauthenticated uploads work too (same command without --login), but they expire after 30 days and don't get workspace-level features like per-node commit history or AI chat over the snapshot.
Library use
If you want to generate a snapshot programmatically instead of from the terminal, use the public commiter.lib module:
from commiter.lib import generate_snapshot
snapshot = generate_snapshot(["./path/to/repo"])
# snapshot is a dict with keys: nodes, edges, fileTree, nodeAnalysis,
# nodeHashes, repoFullNames
Only commiter.lib is a stable API. Everything else (commiter.cli, commiter.scanner, commiter.extractors.*, ...) is considered internal and may change between releases.
What's supported today
Languages (via tree-sitter): Python, JavaScript, TypeScript, TSX/JSX.
Frontend frameworks: Next.js (App Router + Pages Router), React + fetch / axios call detection.
Backend frameworks: Flask, FastAPI, Next.js API routes.
ORMs / Databases: Prisma, Supabase client, SQLAlchemy.
Patterns detected: routes, middleware, decorators/guards, typed request/response shapes (cross-file + generics), frontend-to-backend call correlation across repos.
Output formats: console, markdown, json, ai (LLM-ready), architecture (the JSON shape that --enrich uploads).
Environment variables
| Variable | Default | Purpose |
|---|---|---|
COMMITER_TOKEN |
— | Auth token for --enrich. Alternative to --token flag or commiter --login. |
COMMITER_API_URL |
https://commiter-api.up.railway.app |
Base URL for the backend API. Set this to point the CLI at a local/staging server. |
COMMITER_FRONTEND_URL |
https://commiter-three.vercel.app |
Base URL for the web app (used during --login browser OAuth). Set this for local dev. |
Current limitations
Be aware of these before opening a bug report — several are planned but intentionally not done yet.
- Framework coverage is focused on the Next.js + Flask/FastAPI stack. Hono, Elysia, Gin, Echo, Spring Boot, SvelteKit, Nuxt, Astro, Remix are not yet detected. Running the tool on a project built with these will produce partial or empty output.
- ORMs beyond Prisma / Supabase / SQLAlchemy (Drizzle, Convex, Firebase, Mongoose, TypeORM) are not yet recognized.
- Server Actions (
"use server"directives in Next.js 14+) are not yet detected — they'll be missed from the endpoint graph. --diffis not implemented. Snapshots are always produced from the current state; there's no "what changed since last scan" yet.--watchis not implemented. Each run is one-shot.- Go, Rust, Java, Kotlin, Ruby, PHP, C#, Swift are not yet parsed beyond manifest-file detection. Tree-sitter grammars exist for these — support is planned but not built.
- Anonymous AI chat: chat over a snapshot at commiter.dev currently requires an authenticated session. Public/anonymous snapshot pages can be viewed but not chatted with.
- No plugin system. You can't currently write custom adapters for in-house frameworks without forking the package.
- Large monorepos (1000+ files) have not been performance-tuned. Scans work but may be slow; tree-sitter parsing dominates runtime.
See ROADMAP.md for the full plan and expected release ordering.
Links
- PyPI: https://pypi.org/project/commiter-cli/
- Canvas / snapshot viewer: https://commiter-three.vercel.app
- Issues and contributions: GitHub repo (see PyPI page)
License
MIT — see LICENSE if present, otherwise treat as MIT.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file commiter_cli-0.3.1.tar.gz.
File metadata
- Download URL: commiter_cli-0.3.1.tar.gz
- Upload date:
- Size: 99.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c8840ca990f179cb91ffe4e8cb00d0c45a4ae79a04cebffbe8018112b314682e
|
|
| MD5 |
6986b5dbaf6df309e590152ff706d017
|
|
| BLAKE2b-256 |
e56ac428b778d8a640f5268ed0fb75bba53e0aaf292e909f8af8b4757a4e316f
|
File details
Details for the file commiter_cli-0.3.1-py3-none-any.whl.
File metadata
- Download URL: commiter_cli-0.3.1-py3-none-any.whl
- Upload date:
- Size: 130.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca303e36aabf6148e22db8649daaccfdfa8c8e28f813607888d422e06d07da0f
|
|
| MD5 |
8333451fea33d37b4cc5905beb541bb6
|
|
| BLAKE2b-256 |
9cb0267f8d901a681a499646f896d2bff22bdf5f93e4febf39351ddc7a42d91c
|