Roadmap CLI
Roadmap is a repository-local project-management CLI for developers who want their planning data in reviewable Markdown and YAML files rather than a hosted service. It supports issues, dependencies, comments, projects, milestones, daily views, health checks, and machine-readable exports.
The current release is 0.3.0. Its deliberately contracted behavior is defined by an explicit public compatibility contract. 0.3 is an internal quality-hardening release; the 0.2 CLI and data contract is unchanged.
What it does
- Stores canonical project data under
.roadmap/so it can be reviewed and versioned with the repository. - Works offline after installation; no Roadmap account or server is required.
- Manages issue state, priority, assignment, dependencies, progress, and threaded comments.
- Organizes work into projects and milestones and derives planning views.
- Exposes JSON and CSV for scripts alongside human-readable terminal output.
- Uses a local SQLite index as a rebuildable projection of canonical files.
- Leaves network collaboration to ordinary Git.
Roadmap is intentionally repository-scoped and CLI-first. It does not provide a hosted web UI, cross-repository portfolio planning, or provider-owned remote issue synchronization.
Requirements
- Python 3.12, 3.13, or 3.14
- macOS or Linux; CI tests Ubuntu 24.04 x64 and macOS 15 ARM64
- Git when the
.roadmap/data will be shared with collaborators
Installation
With uv:
uv tool install roadmap-cli
roadmap --version
With pipx:
pipx install roadmap-cli
roadmap --version
Or in a virtual environment:
python3.12 -m venv .venv
source .venv/bin/activate
pip install roadmap-cli
roadmap --version
For development:
git clone https://github.com/shanewilkins/roadmap.git
cd roadmap
uv sync --all-extras --locked
uv run roadmap --help
Quick start
Initialize a repository and create work:
cd my-project
roadmap init --project-name "My project"
roadmap issue create --title "Fix login timeout" --priority high
roadmap issue list
Use the ID printed by issue create to inspect and update the issue:
roadmap issue view <issue-id>
roadmap issue update <issue-id> --status in-progress
roadmap issue progress <issue-id> 50
roadmap issue comment add <issue-id> "Reproduced and isolated the cause."
roadmap issue close <issue-id> --reason "Fixed and verified"
Organize delivery:
roadmap project create --title "Web application"
roadmap milestone create --title "0.2" --due-date 2026-09-30
roadmap milestone assign <issue-id> "0.2"
roadmap milestone view "0.2"
Query or export data:
roadmap today
roadmap status --format json
roadmap issue list --status blocked --format json
roadmap data export --format csv --output roadmap.csv
roadmap health --format json
Run roadmap <command> --help for the exact options supported by the installed
version.
Migrating an existing workspace
The 0.2 development line upgrades 0.1.1 workspaces explicitly. Preview the complete validated write set first, then confirm the migration:
roadmap migrate --dry-run
roadmap migrate --yes
Migration preserves existing IDs and user-authored content, moves canonical documents to flat stable-ID paths, externalizes user preferences, and rebuilds SQLite from canonical files. Resolve every reported conflict before retrying; ordinary reads never migrate files automatically. Follow the complete 0.2 migration guide before upgrading.
Collaborating through Git
Roadmap data is shared the same way as source code:
git add .roadmap/
git commit -m "Update project roadmap"
git pull --rebase
git push
Roadmap 0.2 keeps explicit local Git conveniences such as roadmap git status,
roadmap git branch <issue-id>, and roadmap git link <issue-id>. It does not
install hooks, interpret commit prose to mutate issue state, store provider
credentials, or synchronize directly with GitHub or another issue service.
The 0.2 codebase removes the experimental 0.1.1 remote-sync, provider, and automatic-hook commands. Use normal Git commands for collaboration. See the 0.2 removal guide before upgrading an existing workspace.
Data ownership and recovery
Canonical Markdown and YAML are the durable data. SQLite is a local search and validation projection, not a second source of truth and not a remote sync target. Projection rebuild and canonical-file recovery are explicit and testable.
Keep .roadmap/ versioned and make a normal Git commit before running the 0.2
migration. Do not treat the internal SQLite schema as a public API.
Documentation
- Quick start
- Installation
- Workflows
- FAQ
- 0.2 migration guide
- Architecture decisions
- Refactor case study
- 0.2 release checklist
- Requirements register
- Project governance
- Security policy
- Contributing guide
The old GitHub and milestone synchronization guides describe experimental 0.1.1 behavior and are retained only as migration history; they are not the 0.2 product direction.
Project status
Roadmap 0.2.0 is the result of thirteen independently verified refactor phases. See the execution plan and published checkpoint reports.
License
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 roadmap_cli-0.3.0.tar.gz.
File metadata
- Download URL: roadmap_cli-0.3.0.tar.gz
- Upload date:
- Size: 98.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44188b07161e86e8bd688c58002022984acf81271c0343309089b4a529bc6112
|
|
| MD5 |
0073ecce1626a121c19a084b7e06a0fd
|
|
| BLAKE2b-256 |
5d6d06313448f433849d4871c3e736f65df1cc31695069746e4aca21f109c6dd
|
Provenance
The following attestation bundles were made for roadmap_cli-0.3.0.tar.gz:
Publisher:
release.yml on shanewilkins/roadmap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
roadmap_cli-0.3.0.tar.gz -
Subject digest:
44188b07161e86e8bd688c58002022984acf81271c0343309089b4a529bc6112 - Sigstore transparency entry: 2686684389
- Sigstore integration time:
-
Permalink:
shanewilkins/roadmap@3d13b194d72dd1b4fb3297bbc5c49404041d7bbe -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/shanewilkins
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3d13b194d72dd1b4fb3297bbc5c49404041d7bbe -
Trigger Event:
push
-
Statement type:
File details
Details for the file roadmap_cli-0.3.0-py3-none-any.whl.
File metadata
- Download URL: roadmap_cli-0.3.0-py3-none-any.whl
- Upload date:
- Size: 143.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5d95cd512ea70bf19512f8be80e2c948d7d5cde1ac481db290e58107f9e16a0a
|
|
| MD5 |
40e9e54f13d5dc8a486b8152b36ce9fd
|
|
| BLAKE2b-256 |
bf9774a1b0cdd54d8526f7d48961ddb5564d948af6f5d564a53c922b6ab6fd36
|
Provenance
The following attestation bundles were made for roadmap_cli-0.3.0-py3-none-any.whl:
Publisher:
release.yml on shanewilkins/roadmap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
roadmap_cli-0.3.0-py3-none-any.whl -
Subject digest:
5d95cd512ea70bf19512f8be80e2c948d7d5cde1ac481db290e58107f9e16a0a - Sigstore transparency entry: 2686684428
- Sigstore integration time:
-
Permalink:
shanewilkins/roadmap@3d13b194d72dd1b4fb3297bbc5c49404041d7bbe -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/shanewilkins
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3d13b194d72dd1b4fb3297bbc5c49404041d7bbe -
Trigger Event:
push
-
Statement type: