Version-controlled task management for AI agents
Project description
TaskManager.exe
Version-controlled task management for AI agents. Agents use familiar file editing tools; versioning and sync happen transparently via jj (jujutsu).
Problem
AI agents using file-based task systems lose work when:
- Multiple agents edit the same file
- Context resets mid-task and overwrites with stale state
- No history to recover from
- Agents go in circles - after context reset, they repeat mistakes because they don't know what was already tried
Installation
Requires Python 3.11+ and jj.
pipx install taskmanager-exe
# or
uvx taskmanager-exe
Quick Start
# Initialize in your repo
taskman init
# Install MCP server config
taskman install-mcp claude # or: cursor, codex
# Install Claude Code skills (optional)
taskman install-skills
To create a worktree (from main repo):
taskman wt my-feature # creates worktrees/my-feature/ + clones .agent-files
To add .agent-files to an existing worktree (recovery):
taskman wt # clones .agent-files into current directory
How It Works
Agent
│
├── Edit tool ────────► .agent-files/ (jj repo)
│ (file ops) │
│ push/pull
├── MCP Server ───────────────┼──────────────────►
│ (batch/sync) ▼
│ .agent-files.git/ (bare origin)
└── Skills ───────────────────┘
(CLI wrapper)
- Agents edit files with their normal Edit tool
- jj auto-snapshots every change (no explicit commit needed)
- MCP tools or Skills handle sync and history queries
- Bare git origin serializes concurrent access across worktrees
CLI Commands
taskman init # create .agent-files.git/ + .agent-files/
taskman wt <name> # create worktree (from main repo)
taskman wt # add .agent-files to existing worktree
taskman install-mcp <agent> # install MCP config (claude, cursor, codex)
taskman install-skills # install skill files to ~/.claude/commands/
taskman uninstall-mcp <agent> # remove MCP config
taskman uninstall-skills # remove skill files
taskman describe <reason> # create named checkpoint
taskman sync <reason> # full sync: describe + fetch + rebase + push
taskman history-diffs <file> <start> [end] # diffs across revision range
taskman history-batch <file> <start> [end] # file content at each revision
taskman history-search <pattern> [file] [limit] # search history
taskman stdio # run MCP server (stdio transport)
MCP Tools
When installed via taskman install-mcp, these tools are available:
| Tool | Description |
|---|---|
describe(reason) |
Create named checkpoint |
sync(reason) |
Full sync workflow |
history_diffs(file, start, end) |
Aggregate diffs across range |
history_batch(file, start, end) |
File content at all revisions |
history_search(pattern, file, limit) |
Search history for pattern |
Skills
When installed via taskman install-skills, these Claude Code skills are available:
| Skill | Description |
|---|---|
/continue |
Resume work - pull + read STATUS.md |
/handoff |
Mid-task handoff - sync + detailed context |
/complete |
Task done - sync + archive |
/describe <reason> |
Create named checkpoint |
/sync <reason> |
Full sync workflow |
/history-diffs <file> <start> [end] |
Diffs across range |
/history-batch <file> <start> [end] |
File content at revisions |
/history-search <pattern> [--file] [--limit] |
Search history |
Skills wrap the CLI and work without MCP support.
Direct jj Commands
Agents can also use jj directly for simple operations:
jj status # current state
jj log # view history
jj diff # see changes
jj restore --from <rev> <file> # restore file from revision
Task File Structure
.agent-files/
STATUS.md # Task index, session state
LONGTERM_MEM.md # Architecture (months+)
MEDIUMTERM_MEM.md # Patterns, gotchas (weeks)
tasks/
TASK_<slug>.md # Individual tasks
_archive/ # Completed tasks
Sync Model
Sync at task boundaries:
/continue- session start, pull latest state/handoff- mid-task, push with detailed context/complete- task done, push and archive
On conflict, agent resolves with Edit tool, then syncs again.
License
MIT
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 taskmanager_exe-0.2.9.tar.gz.
File metadata
- Download URL: taskmanager_exe-0.2.9.tar.gz
- Upload date:
- Size: 11.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2075eb3f10e1992191b86a07dd74c970a2efb45f3856f2d42d6dd9b0d7ed49e7
|
|
| MD5 |
f29f69f9addfe2943ff5d8ee7bb44335
|
|
| BLAKE2b-256 |
ed342f6fbe97c2f3f49f66b61b2a0ccdb129a3b77513456f2c2b9de4f68b85e4
|
Provenance
The following attestation bundles were made for taskmanager_exe-0.2.9.tar.gz:
Publisher:
publish.yml on charles-cooper/TaskManager.exe
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
taskmanager_exe-0.2.9.tar.gz -
Subject digest:
2075eb3f10e1992191b86a07dd74c970a2efb45f3856f2d42d6dd9b0d7ed49e7 - Sigstore transparency entry: 804018188
- Sigstore integration time:
-
Permalink:
charles-cooper/TaskManager.exe@5bc63b1e6c82c0ff49f4ea8e7d3ea6c8cbcd3c61 -
Branch / Tag:
refs/tags/v0.2.9 - Owner: https://github.com/charles-cooper
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5bc63b1e6c82c0ff49f4ea8e7d3ea6c8cbcd3c61 -
Trigger Event:
release
-
Statement type:
File details
Details for the file taskmanager_exe-0.2.9-py3-none-any.whl.
File metadata
- Download URL: taskmanager_exe-0.2.9-py3-none-any.whl
- Upload date:
- Size: 15.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
31fb9af56bd410a6b83fc0086a14ab3d19e3752b0e664ae8f85178752c07f15f
|
|
| MD5 |
4442c8459c8e280f7be076db7d063b3e
|
|
| BLAKE2b-256 |
b755b116c4af13f1ec3672d821855256469811cda5576e19ee482c4911ae4175
|
Provenance
The following attestation bundles were made for taskmanager_exe-0.2.9-py3-none-any.whl:
Publisher:
publish.yml on charles-cooper/TaskManager.exe
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
taskmanager_exe-0.2.9-py3-none-any.whl -
Subject digest:
31fb9af56bd410a6b83fc0086a14ab3d19e3752b0e664ae8f85178752c07f15f - Sigstore transparency entry: 804018202
- Sigstore integration time:
-
Permalink:
charles-cooper/TaskManager.exe@5bc63b1e6c82c0ff49f4ea8e7d3ea6c8cbcd3c61 -
Branch / Tag:
refs/tags/v0.2.9 - Owner: https://github.com/charles-cooper
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5bc63b1e6c82c0ff49f4ea8e7d3ea6c8cbcd3c61 -
Trigger Event:
release
-
Statement type: