Pillar
A file-based task tracker for managing projects, milestones, and issues
Pillar is a command-line task tracker that uses plain text files (Markdown with YAML frontmatter) to manage your projects, milestones, and issues. Perfect for developers who want to track work without leaving the terminal or dealing with complex web interfaces.
✨ Features
- 📁 File-based: All data stored as Markdown files in your repository
- 🎯 Project Management: Organize work into projects, milestones, and issues
- 💬 Comments: Add timestamped comments to any entity
- 🏷️ Flexible Filtering: Filter by status, priority, tags, and more
- 📊 Kanban Board: Visualize work across status columns
- 🔍 Status Overview: Get a quick snapshot of all active work
- ⚙️ Configurable: Separate PM data from code with base directory support
- 🚀 No Database: Git-friendly plain text files
🚀 Quick Start
# Initialize a new workspace
# Create a project
# Add a milestone
# Create an issue
# View board
# Add a comment
📦 Installation
From Crates.io (Recommended)
From Source
Homebrew (Coming Soon)
📖 Usage
Initialize a Workspace
# Standard initialization (stores data in current directory)
# Use a base directory (keeps PM data separate from code)
Managing Projects
# Create a project
# List all projects
# Filter projects
# Show project details
# Update project
Managing Milestones
# Create a milestone
# List milestones
# Filter by project
# Update milestone
Managing Issues
# Create an issue
# List issues
# Filter issues
# Update issue
Comments
# Add comment to project
# Add comment to issue
# Add comment to milestone
# List comments
Viewing Status
# Overview of all work
# Kanban board view
# Board for specific project
📂 File Structure
When you run pillar init, it creates the following structure:
.pillar/
├── config.toml # Workspace configuration
└── templates/ # Templates for new entities
├── project.md
├── milestone.md
└── issue.md
MyProject/ # Project directory
├── README.md # Project metadata and description
├── milestones/ # Milestone files
│ └── v1.0.md
└── issues/ # Issue files
├── 001-add-auth.md
└── 002-fix-bug.md
Example Issue File
title: Add user authentication
status: in-progress
priority: high
project: MyProject
milestone: v1.0
tags: [feature, security]
created: 2025-12-29T10:00:00Z
Implement OAuth2 authentication for user login.
- --
Started implementation, using passport.js
Added tests for auth flow
🎯 Status Values
backlog- Not yet prioritizedtodo- Ready to work onin-progress- Currently being worked oncompleted- Finishedcancelled- Not doing this
🔥 Priority Levels
low- Nice to havemedium- Standard priorityhigh- Importanturgent- Critical, needs immediate attention
🔧 Configuration
Base Directory
Keep your PM data separate from code:
# Initialize with base directory
# Now all projects go in ./pm/ directory
# Creates: pm/MyProject/
The configuration is stored in .pillar/config.toml:
[]
= "0.1.0"
= "pm"
[]
= "medium"
= "backlog"
🤝 Contributing
Contributions are welcome! Please see CONTRIBUTING.md for details.
Development Setup
# Clone the repository
# Run tests (single-threaded to avoid race conditions)
# Run with logging
RUST_LOG=debug
# Build release
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Inspired by tools like Linear, Jira, and GitHub Issues
- Built with Rust and clap
- Follows the Keep a Changelog format
📊 Why Pillar?
Git-Friendly: All your tasks are in plain text files that can be versioned with Git. No more losing task history or dealing with database backups.
Developer-Focused: Designed for developers who live in the terminal. No context switching to a web browser.
Portable: Your data is just Markdown files. Easy to read, easy to edit, easy to migrate.
Flexible: Works with your workflow. Use it alongside code, keep it separate, or integrate it into your documentation.
💡 Use Cases
- Solo Developers: Track personal projects and TODOs
- Small Teams: Collaborate using Git for task management
- Open Source: Manage issues alongside code in the same repository
- Documentation: Tasks embedded in your documentation site
- Offline Work: No internet required, everything is local
🐛 Bug Reports & Feature Requests
Found a bug? Have an idea for a feature? Please open an issue!
⭐ Show Your Support
If you find Pillar useful, please consider:
- Giving it a star on GitHub
- Sharing it with others
- Contributing to the project
- Reporting bugs or suggesting features