Skip to main content

Generate the next 10 project tasks from project state, git history and an LLM prompt.

Project description

nxdo

AI Cost Tracking

PyPI Version Python License AI Cost Human Time Model

  • 🤖 LLM usage: $1.6742 (26 commits)
  • 👤 Human dev: ~$1128 (11.3h @ $100/h, 30min dedup)

Generated on 2026-06-16 using openrouter/qwen/qwen3-coder-next


nxdo is a Python package that inspects the current project state, reads recent git history, adds a user question for an LLM, and returns a concrete plan for the next 10 engineering tasks.

What is included

  • Project snapshot analysis — README, manifests (pyproject.toml, package.json, Cargo.toml, …), directory tree, stack detection
  • Git context — recent commits, most-changed files, TODO/FIXME markers
  • Advanced code metrics — cyclomatic complexity, coupling analysis, bug hotspots, bus factor detection
  • Koru-aware planning — Deep integration with koru framework for intelligent task generation
  • Pydantic models — validated data models for tasks and plans (Task, TaskPlan)
  • Provider abstraction — pluggable LLM backends; ships with an OpenAI-compatible provider (works with OpenRouter and any OpenAI-style API)
  • Planner orchestratorgenerate_next_tasks() composes analysis + prompt + LLM call into a validated TaskPlan
  • Rich CLInxdo plan, nxdo auto, nxdo metrics, nxdo print-context, nxdo print-prompt, nxdo validate, nxdo tickets
  • Reliabilityhttpx for HTTP, tenacity for automatic retry/backoff, pydantic-settings for environment config

Quick start

python -m venv .venv
. .venv/bin/activate
pip install -e .
nxdo print-prompt .

To generate a real plan, set OPENROUTER_API_KEY or OPENAI_API_KEY and run:

nxdo plan . --extra-context "What should we build next for this repository?"

Output as JSON:

nxdo plan . --json

Inspect captured project and git context without calling the LLM:

nxdo print-context .

Validate a saved plan file:

nxdo validate plan.json

Analyze code metrics and coupling:

nxdo metrics .

CLI Reference

nxdo plan

Generate a 10-task engineering plan for a repository.

Usage:

nxdo plan [REPO_PATH] [OPTIONS]

Options:

  • --extra-context, -e TEXT: Additional prompt context for the LLM
  • --model, -m TEXT: Override the LLM model name
  • --base-url TEXT: Override the API base URL
  • --json: Output plan as JSON instead of formatted text
  • --max-commits INTEGER: How many recent commits to inspect (default: 30)

nxdo print-context

Print the assembled project and git context without calling the LLM.

Usage:

nxdo print-context [REPO_PATH] [OPTIONS]

Options:

  • --max-commits INTEGER: How many recent commits to inspect (default: 30)
  • --raw: Print raw text instead of Rich panels

nxdo print-prompt

Print the full prompt that would be sent to the LLM.

Usage:

nxdo print-prompt [REPO_PATH] [OPTIONS]

Options:

  • --extra-context, -e TEXT: Additional prompt context for the LLM
  • --max-commits INTEGER: How many recent commits to inspect (default: 30)

nxdo validate

Validate a saved JSON plan file against the TaskPlan schema.

Usage:

nxdo validate PLAN_FILE

nxdo auto

Auto-generate and sync tickets for the most important work. This is the quickest way to get actionable tickets into your planfile.

Usage:

nxdo auto [REPO_PATH] [OPTIONS]

What it does:

  1. Analyzes project for high-priority issues (hotspots, complexity, coupling)
  2. Generates tickets using koru-aware planning
  3. Auto-syncs to .planfile/ for execution via koru queue

Options:

  • --extra-context, -e TEXT: Additional prompt context for the LLM
  • --dry-run: Show what would be done without executing

Example:

# Quick auto mode - analyze, generate, sync
nxdo auto

# With extra context
nxdo auto . -e "Focus on security improvements"

# Dry run to preview
nxdo auto --dry-run

Equivalent to:

nxdo tickets . --koru-aware --sync-planfile

nxdo metrics

Display comprehensive code metrics for the project including cyclomatic complexity, change coupling, bug hotspots, and bus factor analysis.

Usage:

nxdo metrics [REPO_PATH] [OPTIONS]

Options:

  • --top, -n INTEGER: Show top N items per category (default: 10)
  • --min-coupling FLOAT: Minimum coupling score to display (default: 0.3)

Metrics displayed:

  • Cyclomatic Complexity per file (identify complex functions to refactor)
  • Coupling Analysis — which files change together frequently (plan refactors together)
  • Coupling Clusters — groups of tightly coupled files (sprint planning)
  • Bug Hotspots — files with high bug fix rate and code churn
  • Bus Factor — files with few authors (knowledge silos)

Example:

# Show metrics for current project
nxdo metrics .

# Show top 5 with higher coupling threshold
nxdo metrics . --top 5 --min-coupling 0.5

nxdo tickets

Generate tickets from a plan using planfile integration.

This command generates tickets from a TaskPlan and optionally syncs them to TODO.md, .planfile/, or exports to planfile YAML format.

Usage:

nxdo tickets [REPO_PATH] [OPTIONS]

Options:

  • --extra-context, -e TEXT: Additional prompt context for the LLM
  • --model, -m TEXT: Override the LLM model name
  • --base-url TEXT: Override the API base URL
  • --max-commits INTEGER: How many recent commits to inspect (default: 30)
  • --sync-todo: Sync tasks to TODO.md checkboxes using planfile
  • --sync-planfile: Store tickets in .planfile/ and sync with markdown
  • --export-yaml: Export to planfile YAML format
  • --output, -o PATH: Output file for YAML export
  • --koru-aware: Enable koru integration schema for smart task planning

Examples:

# Generate and display tickets
nxdo tickets .

# Sync to TODO.md
nxdo tickets . --sync-todo

# Export to planfile YAML
nxdo tickets . --export-yaml --output strategy.yaml

# Koru-aware planning (generates tasks referencing koru operations)
nxdo tickets . --koru-aware --sync-planfile

Note: This feature requires the planfile package. It will be auto-installed if missing.

Configuration

All settings are read from environment variables:

Variable Default Description
OPENROUTER_API_KEY API key for OpenRouter (preferred)
OPENAI_API_KEY API key for OpenAI-compatible endpoint
LLM_MODEL openrouter/qwen/qwen3-coder-next Model name
LLM_BASE_URL https://openrouter.ai/api/v1 API base URL
LLM_TIMEOUT 60 HTTP timeout in seconds
LLM_MAX_RETRIES 3 Number of retry attempts on network error
MAX_COMMITS 30 How many recent commits to read

Runtime dependencies

  • pydantic>=2
  • pydantic-settings>=2
  • typer>=0.12
  • rich>=13
  • httpx>=0.27
  • tenacity>=8

Examples

Generate a plan for a Python project

export OPENROUTER_API_KEY="your-api-key"
nxdo plan /path/to/project --extra-context "Focus on improving test coverage"

Use a custom model

nxdo plan . --model "openrouter/anthropic/claude-3.5-sonnet"

Inspect what data is sent to the LLM

nxdo print-prompt . --extra-context "Review security issues"

Generate a plan and save as JSON

lane plan . --json > plan.json
lane validate plan.json

Analyze a project with limited git history

lane plan . --max-commits 10

Quick auto mode (analyze + generate + sync)

# One command to analyze project and create tickets in planfile
lane auto

# With custom focus
lane auto . -e "Refactor authentication system"

Code metrics analysis

# Full metrics report
lane metrics .

# High coupling files
lane metrics . --top 10 --min-coupling 0.6

Koru-aware planning

lane tickets . --koru-aware --sync-planfile

Architecture

Modules

  • lane.project_analyzer — Project analysis (manifests, structure, stack)
  • lane.git_reader — Git history analysis
  • lane.metrics — Code metrics (complexity, coupling, hotspots)
  • lane.koru_context — Koru framework integration
  • lane.planner — Orchestrates analysis → LLM → TaskPlan
  • lane.providers — Pluggable LLM backends
  • lane.ticket_generator — Planfile integration

Development

pip install -e ".[dev]"
PYTHONPATH=src python -m unittest discover -s tests -v

Changelog

0.2.x

  • Added lane auto command — one-command workflow (analyze + generate + sync)
  • Added lane metrics command (complexity, coupling, hotspots, bus factor)
  • Added --koru-aware flag for koru-integrated planning
  • Added lane.metrics module
  • Added lane.koru_context module
  • Improved Test coverage to 97%
  • Improved Refactored CC hotspots

License

Licensed under Apache-2.0.

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

nxdo-0.2.23.tar.gz (55.1 kB view details)

Uploaded Source

Built Distribution

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

nxdo-0.2.23-py3-none-any.whl (42.9 kB view details)

Uploaded Python 3

File details

Details for the file nxdo-0.2.23.tar.gz.

File metadata

  • Download URL: nxdo-0.2.23.tar.gz
  • Upload date:
  • Size: 55.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for nxdo-0.2.23.tar.gz
Algorithm Hash digest
SHA256 b9152a0d6f55d2a871b8df3e371f8b8e48420a7990182172b1e60e7c85057d06
MD5 2ddae5d532ad689a880cfdc02ab3b1b6
BLAKE2b-256 bb46de2e216fcc6bdac90872d5e9407d3270d540797bd9e71e3829e56ca3e4f6

See more details on using hashes here.

File details

Details for the file nxdo-0.2.23-py3-none-any.whl.

File metadata

  • Download URL: nxdo-0.2.23-py3-none-any.whl
  • Upload date:
  • Size: 42.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for nxdo-0.2.23-py3-none-any.whl
Algorithm Hash digest
SHA256 7c57c649d12a5570547cfd46dcf4ad4e540b56f94fc3caa0c2df7084d1b10d71
MD5 2bff24b010f73ffede00fe6f6e870f2d
BLAKE2b-256 abd75614eb4155b46d3c20c8e98205d6ef0354829fb999712398b229c2f77326

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