Git-based project management for developers and AI agents
Project description
Gira - Git-based Issue Tracking and Project Management
Gira is a lightweight, Git-friendly project management tool designed for developers and AI agents. It stores all project data in plain JSON files within your repository, making it perfect for version control and collaboration.
โจ Features
- Git-Native: All data stored as JSON files in
.gira/directory - Offline-First: Works completely offline, no external dependencies
- AI-Friendly: MCP server for AI agents (Claude, Gemini) with 30+ tools
- Kanban Board: Visual project management with customizable swimlanes
- Rich CLI: Beautiful terminal UI with colors and tables
- Advanced Search: Powerful query language with filters and full-text search
- Shell Completion: Tab completion for all commands and dynamic ID completion
- Fast: Lightweight and responsive, perfect for large projects
- Extensible: Hook system, webhooks, and custom fields support
- Import/Export: JSON, CSV, and Markdown format support
๐ Quick Start
# Install Gira
pip install gira # Available on PyPI
# Or install from source
pip install -e .
# Install with optional features
pip install "gira[s3]" # For AWS S3, Cloudflare R2, Backblaze B2
pip install "gira[gcs]" # For Google Cloud Storage
pip install "gira[azure]" # For Azure Blob Storage
pip install "gira[docs]" # For documentation tools
# Initialize a new project
gira init "My Project"
# Create your first ticket
gira ticket create "Set up project structure"
# View the kanban board
gira board
# List all tickets
gira ticket list
๐ Core Commands
Project Management
gira init <name>- Initialize a new Gira projectgira --version- Show version information
Ticket Operations
gira ticket create <title>- Create a new ticketgira ticket list- List tickets with filtering (--search,--labels,--assignee)gira ticket show <id>- Display ticket detailsgira ticket update <id>- Update ticket fieldsgira ticket move <id> <status>- Move ticket between statuses
Epic Management
gira epic create <title>- Create a new epicgira epic list- List all epicsgira epic show <id>- Display epic detailsgira epic update <id>- Update epic fields (--add-tickets)
Sprint Management
gira sprint create <name>- Create a new sprint (--duration,--end-date)gira sprint list- List sprints (--format json)gira sprint show <id>- Display sprint detailsgira sprint update <id>- Update sprint fields
Comments & Search
gira comment add <ticket-id>- Add comment to ticketgira comment list <ticket-id>- List ticket commentsgira query <expression>- Advanced search with filters
Export & Integration
gira export json- Export project data to JSONgira export csv- Export to CSV formatgira export md- Export to Markdown formatgira webhook add <url>- Add webhook integration
AI Integration
- MCP Server: 30+ tools for AI agents (Claude Desktop, etc.)
- Natural Language: AI agents can manage tickets through conversation
- Install:
pip install "gira[mcp]"and configure Claude Desktop
Shell Completion
gira --install-completion- Install tab completion (recommended)gira completion install <shell>- Legacy completion system (deprecated)
Board Visualization
gira board- Display kanban boardgira board --compact- Compact board viewgira board --assignee <email>- Filter by assignee
Backlog Management
gira backlog- View backlog tickets with smart filtersgira backlog --ready- Show tickets ready to work ongira backlog --unassigned- Show unassigned ticketsgira backlog --priority high- Filter by prioritygira backlog --counts- Show summary counts
๐๏ธ Project Structure
.gira/
โโโ config.json # Project configuration
โโโ .state.json # Internal state (next ticket ID, etc.)
โโโ backlog/ # Tickets in backlog
โโโ board/ # Active tickets by status
โ โโโ todo/
โ โโโ in_progress/
โ โโโ review/
โ โโโ done/
โโโ epics/ # Epic definitions and management
โโโ sprints/ # Sprint data and tracking
โโโ comments/ # Ticket comments and discussions
โโโ archive/ # Completed tickets
๐ Documentation
๐ ๏ธ Advanced Features
Custom Git Merge Driver
Gira includes an intelligent Git merge driver that automatically resolves conflicts in JSON files:
- Smart Conflict Resolution: Uses "latest-write-wins" strategy based on timestamps
- Semantic Merging: Understands ticket structure and merges fields intelligently
- File Movement Handling: Correctly handles tickets moved to different statuses
- Audit Trail: Adds merge notes to track automatic resolutions
To enable the merge driver:
.gira/scripts/setup-merge-driver.sh
See merge driver documentation for details.
Contributing
Contributions are welcome! Please read our contributing guide and submit pull requests to our repository.
๐ Documentation
Comprehensive documentation is available at goatbytes.github.io/gira
- ๐ Installation - Installation guide
- ๐ Quick Start - Get started in minutes
- ๐ User Guide - Complete feature documentation
- ๐ง CLI Reference - All commands and options
- ๐ Commands - Individual command documentation
- ๐ค AI Agents - AI integration documentation
- ๐ MCP Server - Model Context Protocol integration
๐ก Documentation is automatically updated on every release using our automated generation system.
Development Setup
# Clone the repository
git clone https://github.com/goatbytes/gira.git
cd gira
# Install in development mode
pip install -e ".[dev]"
# Run tests
pytest
# Run linter
ruff check src/
๐ Testing
Gira maintains high test coverage (88%+) with comprehensive unit and integration tests:
# Run all tests
pytest
# Run with coverage
pytest --cov=gira --cov-report=html
# Run specific test file
pytest tests/integration/test_cli_ticket.py
๐ง Requirements
- Python 3.8 or higher
- Git (for version control integration)
- Terminal with Unicode support (for rich output)
๐ฏ Design Philosophy
Gira follows these core principles:
- Simplicity: Plain JSON files, no database required
- Transparency: All data is human-readable and Git-friendly
- Flexibility: Extensible design for custom workflows
- Performance: Fast operations even with thousands of tickets
- AI-First: Structured data optimized for AI agent interaction
๐ง Troubleshooting
Unicode Display Issues
If you see garbled characters (like รข) instead of box-drawing characters in the board view:
# Set environment variable to force ASCII-only output
export GIRA_ASCII_ONLY=1
gira board
# Or force Unicode if your terminal supports it
export GIRA_FORCE_UNICODE=1
gira board
For container environments, Gira automatically detects and adjusts output. If auto-detection fails, use the environment variables above.
๐ License
Gira is released under the MIT License. See LICENSE file for details.
About GoatBytes.IO
At GoatBytes.IO, our mission is to develop secure software solutions that empower businesses to transform the world. With a focus on innovation and excellence, we strive to deliver cutting-edge products that meet the evolving needs of businesses across various industries.
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 gira-0.2.1.tar.gz.
File metadata
- Download URL: gira-0.2.1.tar.gz
- Upload date:
- Size: 598.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2592e4d4fefc6f0359515f4022169b0c8717d69756255d3c5eac5ef00d700aa1
|
|
| MD5 |
25c53b97cc309e3f317b7a27ca8422db
|
|
| BLAKE2b-256 |
77aeb3cd4bdf2bcaa2b91d88e378d7b7d44e01703c90f8cd960e5319a8ef487e
|
File details
Details for the file gira-0.2.1-py3-none-any.whl.
File metadata
- Download URL: gira-0.2.1-py3-none-any.whl
- Upload date:
- Size: 745.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab6c31150c9b5794a0c484361ceceba3ad71e74cf1de35e57e5c0d938218e49c
|
|
| MD5 |
7a62757b7bc79374535ab8134b4f60fa
|
|
| BLAKE2b-256 |
6345fe1d8a84ffca15538ed3ccd2f6ea28e5bc787a6520ff103c7e0941f1ac5a
|