Skip to content

calebephrem/zap-tcm

Repository files navigation


Logo

The Git-Style CLI Todo Manager


⚡ Zap TCM

Zap TCM (Zap Todo Control Manager) is a blazing-fast, Git-inspired CLI tool for managing todos like code.
Create branches for different projects, switch between them, and keep your workflow lightning clean ⚡

🚀 Features

  • 🧠 Git-like workflow — Use familiar commands like zap add, zap branch, zap switch etc.
  • 🗂️ Branch-based todo lists — Each branch acts as a separate todo list
  • 💾 Persistent storage — Todos are locally stored across sessions in .zap repository
  • 🔥 Minimal & intuitive — No setup needed, just start zapping tasks

🧩 Example Usage

# Initialize zap in your project
zap init

# Add a new todo
zap add "Finish the README file"

# List all todos
zap list

# Mark a todo as done
zap complete 1

# Create a new branch (todo list)
zap branch work

# Switch to another branch
zap switch work

# View branches
zap branch

⚙️ Installation

Using npm (recommended)

npm install -g zap-tcm

From source

git clone https://github.com/calebephrem/zap-tcm.git
cd zap
npm install
npm link

📚 Command Reference

  • zap [command] — for current project (directory) (./.zap)
  • zapg [command] — for global task management in home directory (~/.zap)
Command Description
init Initialize a new zap repository
branch [name] Create a branch (or list branches if no name is given)
branch [-d, --delete] [name] Delete a branch
branch [-r, --rename] [name] [newName] Rename a branch
switch [name] Switch to a branch
add [task] Add a new task to the current branch
list List all tasks in the current branch
update [id] [task] Update a task
remove [id] Remove a task
complete [id] Mark a task as complete
incomplete [id] Mark a task as incomplete
search [keyword] Search tasks in the current branch (use search -g [keyword] to search globally)
merge [source] [target] [--unsort] Merge source branch into target branch (unsort based on createdAt if --unsort flag provided)
tag [id] [tag] Add a tag to a task (replace id with -d to remove a tag)
tag [-r, --rename] [tag] [newTag] Rename tag
move [id] [branch] Move a task to another branch
import [branch] [file] Import tasks from a file into a branch
export [branch] [file] Export tasks from a branch to a file
stats Show statistics for the current branch (use stats -g for global stats)
config [scope] [key] [value] Configuration for --global and --local settings
config [key] Get configuration value
-v, --version Show version information
-h, --help Show help message

💡 Example Workflow

zap init
zap add "Build Quantum Theme site"
zap add "Complete the README file"
zap list

zap branch personal
zap switch personal
zap add "Learn Python"
zap add "Learn Rust"

zap switch main
zap list
zap complete 1

Each branch has its own independent todos — just like code branches in Git.

🧑‍💻 Contributing

Contributions are welcome!
Fork the repo, make your changes, and submit a pull request.
Make sure to read CONTRIBUTING before you start.

📄 License

MIT © Caleb Ephrem