Skip to main content

IssueDB

CI PyPI version Python versions

A command-line issue tracking system for software development projects. IssueDB provides a simple yet concrete way to manage issues, bugs, and tasks directly from your terminal with a per-directory database model - each directory gets its own issue database.

Installation

Requires Python 3.9+.

pip install issuedb

For Web UI support:

pip install issuedb[web]

Quick Start

# Create an issue
issuedb-cli create -t "Fix login bug" --priority high

# List open issues
issuedb-cli list -s open

# Get the next issue to work on
issuedb-cli get-next

Usage

Issue Management

# Create
issuedb-cli create -t "Add feature X" -d "Description..." --priority high --tag v1.0

# List
issuedb-cli list
issuedb-cli list -s open -p critical
issuedb-cli list --tag v1.0

# Get details
issuedb-cli get 1

# Update
issuedb-cli update 1 -s in-progress
issuedb-cli update 1 --due-date 2025-12-31

# Delete
issuedb-cli delete 1

Web Interface

Start the local web server to manage issues visually.

issuedb-cli web

The server binds to 127.0.0.1 (localhost) by default. To expose it on your network, pass --host 0.0.0.0 explicitly. Cross-origin state-changing requests are rejected as a CSRF safeguard.

Dashboard Dashboard with statistics and active issue tracking

Issues List Issues list with filtering and search

Issue Detail Issue detail with comments, links, and history

Issue Detail Full Extended issue detail view

Create Issue Create new issue form

Audit Log Complete audit log of all changes

Advanced Features

# Memory (Agent Context)
issuedb-cli memory add "project_style" "PEP8"
issuedb-cli memory list

# Lessons Learned
issuedb-cli lesson add "Always validate input" -c security
issuedb-cli lesson list

# Tagging
issuedb-cli tag add 1 bug frontend
issuedb-cli list --tag bug

# Dependencies
issuedb-cli block 5 --by 3
issuedb-cli deps 5

# Time Tracking
issuedb-cli timer-start 1
issuedb-cli timer-status
issuedb-cli timer-stop        # no argument: stops ALL running timers
issuedb-cli timer-stop 1      # stop the timer for issue 1
issuedb-cli estimate 1 2.5
issuedb-cli time-log 1
issuedb-cli time-report --period week

# Templates
issuedb-cli templates
issuedb-cli create --template bug -t "Crash on startup" -d "Steps: ..."

# Git integration
issuedb-cli git-status
issuedb-cli git-link 1 -c <commit-hash>
issuedb-cli git-links 1
issuedb-cli git-scan --auto-close   # link commits mentioning "#N"; close "fixes #N"

# Code References
issuedb-cli attach 1 --file "src/main.py:42"
issuedb-cli refs 1
issuedb-cli detach 1 --file "src/main.py"
issuedb-cli affected "src/main.py"

# Similar issues & duplicates
issuedb-cli find-similar "login button broken"
issuedb-cli dedupe

# Bulk operations by pattern (glob by default, --regex for regex)
issuedb-cli bulk-close-pattern --title "legacy *" --dry-run
issuedb-cli bulk-update-pattern --title "v1 *" -s closed
issuedb-cli bulk-delete-pattern --title "tmp *" --confirm

# Bulk-update guards against touching every issue: a filter is required,
# or pass --all to confirm an unfiltered update.
issuedb-cli bulk-update --filter-status open -s in-progress

# Audit Log
issuedb-cli audit -i 1

Sync with Tracker

IssueDB can sync issues, tags, dependencies and relations with a Tracker server. Sync is dry run by default — nothing is written until you pass --apply.

# Store a Tracker API key (once, per machine; no database is created)
issuedb-cli signin --token trk_...

# See who is signed in
issuedb-cli whoami

# Pull changes and show what WOULD happen (dry run — nothing is written)
issuedb-cli sync

# Actually apply the changes
issuedb-cli sync --apply

# Remove the stored key
issuedb-cli signout

What sync does, in order:

  1. Handshake — confirms the server's protocol and project before touching anything local. A protocol mismatch stops the sync with the database untouched.
  2. Pull — reads the whole feed, following pagination until the server reports no more. The number printed is the full feed, not the first page.
  3. Plan — shows every change as CREATE / UPDATE / DELETE / SKIP, with a reason. A dry run and --apply compute the same plan, so what you are shown is what would be done.
  4. Apply (only with --apply) — applies each change in its own transaction, then advances the cursor only to what was durably committed. A failure mid-apply keeps the cursor before the failure, so re-running retries from there.
  5. Coverage — states which local data has no sync entity to travel on (e.g. comments, audit logs), so "everything synced" is never silently assumed.

The cursor and replica identity live outside the database, keyed to the project, so a fresh clone of a tracked repo knows which project it belongs to.

Known limitation: the apply path applies issues, relations and dependencies, but not tags — a sync reports tag changes as SKIP — issuedb does not apply entity 'issue_tag' yet. The push direction (sending local changes to the server) is not yet built.

LLM Agent Integration

IssueDB is designed for AI agents. Use the prompt guide:

issuedb-cli --prompt

Or use the JSON output format for all commands:

issuedb-cli --json list

Continuous Integration

Every push and pull request is validated by GitHub Actions (.github/workflows/ci.yml):

  • test — the full test suite on Python 3.9–3.14, with the [web] extra installed so the Flask Web UI/API tests run.
  • lint & type-check — ruff check . and mypy issuedb.
  • build & verify dist — python -m build plus twine check.

Publishing to PyPI is automated by .github/workflows/release.yml: publishing a GitHub Release tagged v<version> re-runs the tests, checks that the built version matches the tag, and uploads to PyPI via OIDC Trusted Publishing. See docs/contributing.rst for the one-time Trusted Publisher setup.

Run the same gates locally:

pip install -e ".[web]" pytest
ruff check . && mypy issuedb && pytest

License

Apache License 2.0

Metadata

Release files for issuedb 2.33.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for issuedb 2.33.1
File Size Uploaded
issuedb-2.33.1.tar.gz 1.8 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for issuedb 2.33.1
File Interpreter ABI Platform
issuedb-2.33.1-py3-none-any.whl Python 3 none any Details

Total release size: 3.5 MB

Release files / issuedb-2.33.1.tar.gz

Download URL issuedb-2.33.1.tar.gz
Size 1.8 MB
Tags Source
SHA-256 checksum
How to use checksums
acc434236f2044b1e0cebe99cc4b596fd7328b3a11ae3122fd92e6245e496523
BLAKE2b-256 checksum
How to use checksums
08c5060cef408c1d33d331e982cef07abd8ad04b673fbdae196a73d5df8d5e64
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.3

Release files / issuedb-2.33.1-py3-none-any.whl

Download URL issuedb-2.33.1-py3-none-any.whl
Size 1.7 MB
Tags Python 3
SHA-256 checksum
How to use checksums
0526fe3f77aa577d16c34b77a2fa7148c2bf77cd414da6a95130b532b72e53f4
BLAKE2b-256 checksum
How to use checksums
34e59f73e6820ee21a5bfbf6c09e10c767dc5aa3fe95daf0f8c5efa10aa6eaaf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.3

Release history Release notifications | RSS feed

This release

2.33.1 This release

2 release files

2.32.0

2 release files

2.12.0

2 release files

2.11.0

2 release files

2.8.2

2 release files

2.8.1

2 release files

2.8.0

2 release files

2.7.0

2 release files

2.6.1

2 release files

2.5.9

2 release files

2.5.8

2 release files

2.5.7

2 release files

2.5.6

2 release files

2.5.5

2 release files

2.5.4

2 release files

2.5.3

2 release files

2.5.1

2 release files

2.4.0

2 release files

2.3.1

2 release files

2.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page