Skip to main content

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.
  • --diff is not implemented. Snapshots are always produced from the current state; there's no "what changed since last scan" yet.
  • --watch is 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

License

MIT — see LICENSE if present, otherwise treat as MIT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

commiter_cli-0.3.1.tar.gz (99.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

commiter_cli-0.3.1-py3-none-any.whl (130.6 kB view details)

Uploaded Python 3

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

Hashes for commiter_cli-0.3.1.tar.gz
Algorithm Hash digest
SHA256 c8840ca990f179cb91ffe4e8cb00d0c45a4ae79a04cebffbe8018112b314682e
MD5 6986b5dbaf6df309e590152ff706d017
BLAKE2b-256 e56ac428b778d8a640f5268ed0fb75bba53e0aaf292e909f8af8b4757a4e316f

See more details on using hashes here.

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

Hashes for commiter_cli-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ca303e36aabf6148e22db8649daaccfdfa8c8e28f813607888d422e06d07da0f
MD5 8333451fea33d37b4cc5905beb541bb6
BLAKE2b-256 9cb0267f8d901a681a499646f896d2bff22bdf5f93e4febf39351ddc7a42d91c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page