peas
A CLI-based, flat-file issue tracker for humans and robots.
peas stores issues as markdown files alongside your code, making them easy to version control and read. It provides both a CLI and GraphQL interface, perfect for AI coding agents.
Features
- Flat-file storage: Issues stored as markdown with TOML frontmatter in
.peas/ - GraphQL interface: Query and mutate peas with GraphQL for AI agent integration
- Interactive TUI: Browse and manage peas in a terminal UI
- Hierarchical structure: Milestones, epics, features, bugs, and tasks
- Agent-friendly:
peas primeoutputs instructions for AI coding agents
Installation
From source
From crates.io (coming soon)
Quick Start
# Initialize a peas project
# Create some peas
# List peas
# Update status
# Search
# Interactive TUI
CLI Commands
| Command | Description |
|---|---|
peas init |
Initialize a new peas project |
peas create <title> |
Create a new pea |
peas list |
List all peas |
peas show <id> |
Show pea details |
peas update <id> |
Update a pea |
peas start <id> |
Mark pea as in-progress |
peas done <id> |
Mark pea as completed |
peas archive <id> |
Archive a pea |
peas delete <id> |
Delete a pea |
peas search <query> |
Search peas |
peas roadmap |
Generate markdown roadmap |
peas prime |
Output agent instructions |
peas context |
Output project context as JSON |
peas graphql <query> |
Execute GraphQL query |
peas serve |
Start GraphQL HTTP server |
peas tui |
Open interactive TUI |
Pea Types
milestone- High-level project goalsepic- Large features or initiativesfeature- New functionalitybug- Issues to fixtask- General work items
Pea Statuses
draft- Not ready to work ontodo- Ready to be worked onin-progress- Currently being worked oncompleted- Donescrapped- Cancelled
GraphQL Interface
peas provides a full GraphQL API for programmatic access:
# Query stats
# List open peas
# Create a pea
# Update status
Start the GraphQL playground:
# Open http://localhost:4000
Agent Integration
Claude Code
Add to your .claude/settings.json:
Or add to your AGENTS.md:
**IMPORTANT**: Run `peas prime` before starting work to see project tasks.
TUI Keyboard Shortcuts
| Key | Action |
|---|---|
↑/↓ |
Navigate up/down |
←/→ |
Previous/next page |
Tab |
Switch between Tickets/Memory views |
/ |
Search |
Enter |
Open detail view |
Space |
Multi-select toggle |
c |
Create new ticket |
s |
Change status |
t |
Change type |
P |
Change priority |
e |
Edit in $EDITOR |
r |
Refresh |
u |
Undo last operation |
? |
Help |
q |
Quit |
Configuration
peas uses .peas.toml for configuration (also supports .peas.yml, .peas.yaml, or .peas.json, but TOML is preferred):
[]
= ".peas" # Data directory
= "peas-" # ID prefix
= 5 # Random ID length
= "todo"
= "task"
= "toml" # Frontmatter format: toml, yaml, json (TOML preferred)
[]
= false # Enable emoji icons for ticket types in TUI
File Format
Peas are stored as markdown files with TOML frontmatter (YAML and JSON also supported):
+++
id = "peas-abc1"
title = "Implement feature X"
type = "feature"
status = "in-progress"
priority = "high"
tags = ["backend", "api"]
parent = "peas-xyz9"
created = "2024-01-15T10:30:00Z"
updated = "2024-01-15T14:22:00Z"
+++
Detailed description of the feature goes here.
- --
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.