An open API service indexing awesome lists of open source software.

https://github.com/calebephrem/zap-tcm

✅ If you want to know what zap is, just think of git but for your todos
https://github.com/calebephrem/zap-tcm

cli cli-task-manager cli-todo-manager git-but-todo javascript nodejs task task-manager tcm todo todo-cli todo-manager zap zap-cli zap-tcm

Last synced: about 1 month ago
JSON representation

✅ If you want to know what zap is, just think of git but for your todos

Awesome Lists containing this project

README

          



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

```bash
# 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)

```bash
npm install -g zap-tcm
```

### From source

```bash
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

```bash
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](./CONTRIBUTING.md) before you start.

## 📄 License

MIT © Caleb Ephrem