# TaskRepo
[](https://github.com/HenriquesLab/TaskRepo/actions/workflows/ci.yml)
[](https://badge.fury.io/py/taskrepo)
[](https://pypi.org/project/taskrepo/)
[](https://opensource.org/licenses/MIT)
> TaskWarrior-inspired CLI for managing tasks as markdown files in git repositories
TaskRepo is a powerful command-line task management tool that combines the best of TaskWarrior's workflow with the simplicity of markdown and the collaboration features of git.
## Features
- **Git-backed storage**: All tasks are stored as markdown files in git repositories
- **TaskWarrior-inspired**: Familiar workflow with priorities, tags, dependencies, and due dates
- **Rich metadata**: YAML frontmatter for structured task data
- **Link associations**: Attach URLs to tasks (GitHub issues, PRs, emails, documentation, etc.)
- **Interactive TUI**: User-friendly prompts with autocomplete and validation
- **Multiple repositories**: Organize tasks across different projects or contexts
- **GitHub integration**: Associate tasks with GitHub user handles
- **Beautiful output**: Rich terminal formatting with tables and colors
- **Version control**: Full git history and collaboration capabilities
## Installation
### Using pipx (recommended)
```bash
# Install pipx if you haven't already
python3 -m pip install --user pipx
python3 -m pipx ensurepath
# Install TaskRepo
pipx install taskrepo
```
Benefits: Isolated environment, global CLI access, easy updates with `pipx upgrade taskrepo`
### Using uv (fast alternative)
```bash
# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install TaskRepo
uv tool install taskrepo
```
Benefits: Very fast installation, modern Python tooling, automatic environment management
### Using pip (alternative)
```bash
pip install taskrepo
```
Note: May conflict with other packages. Consider using pipx or uv instead.
## Quick Start
> **Note**: You can use either `tsk` (short alias) or `taskrepo` (full command). Examples below use `tsk` for brevity.
### 1. Initialize TaskRepo
```bash
tsk init
```
This creates a configuration file at `~/.taskreporc` and sets up the parent directory for task repositories (default: `~/tasks`).
### 2. Create a repository
```bash
tsk create-repo work
tsk create-repo personal
```
Repositories are stored as `tasks-{name}` directories with git initialization.
### 3. Add a task
```bash
# Interactive mode (default)
tsk add
# Non-interactive mode
tsk add -r work -t "Fix authentication bug" -p backend --priority H --assignees @alice,@bob --tags bug,security
# With associated links (GitHub issues, emails, docs, etc.)
tsk add -r work -t "Fix authentication bug" -p backend --links https://github.com/org/repo/issues/123,https://mail.google.com/mail/u/0/#inbox/abc
```
### 4. List tasks
```bash
# List all tasks
tsk list
# Filter by repository
tsk list --repo work
# Filter by status, priority, or project
tsk list --status pending --priority H
tsk list --project backend
# Show completed tasks
tsk list --all
```
### 5. Manage tasks
```bash
# Mark task as done
tsk done 001
# Edit a task
tsk edit 001
# Sync with git remote
tsk sync
tsk sync --repo work # Sync specific repository
```
## Task File Format
Tasks are stored as markdown files with YAML frontmatter:
```markdown
---
id: '001'
title: Fix authentication bug
status: pending
priority: H
project: backend
assignees:
- '@alice'
- '@bob'
tags:
- bug
- security
links:
- https://github.com/org/repo/issues/123
- https://mail.google.com/mail/u/0/#inbox/abc123
due: '2025-11-15T00:00:00'
created: '2025-10-20T10:30:00'
modified: '2025-10-20T14:22:00'
depends:
- '002'
---
## Description
The login endpoint is not properly validating JWT tokens.
## Steps to reproduce
1. Attempt to login with expired token
2. Observe that access is granted
## Solution
Update JWT validation middleware to check expiration.
```
## Commands Reference
### Configuration
- `tsk init` - Initialize TaskRepo configuration
- `tsk config` - Show current configuration
- `tsk create-repo <name>` - Create a new task repository
- `tsk repos` - List all task repositories
### Task Management
- `tsk add` - Add a new task (interactive)
- `tsk list` - List tasks with filters
- `tsk edit <id>` - Edit a task
- `tsk done <id>` - Mark task as completed
- `tsk delete <id>` - Delete a task
### Git Operations
- `tsk sync` - Pull and push all repositories
- `tsk sync --repo <name>` - Sync specific repository
- `tsk sync --no-push` - Pull only, don't push
## Task Fields
| Field | Type | Description |
|-------|------|-------------|
| `id` | string | Unique task identifier (auto-generated) |
| `title` | string | Task title (required) |
| `status` | string | Task status: `pending`, `in_progress`, `completed`, `cancelled` |
| `priority` | string | Priority level: `H` (High), `M` (Medium), `L` (Low) |
| `project` | string | Project name (optional) |
| `assignees` | list | GitHub user handles (e.g., `@username`) |
| `tags` | list | Tags for categorization |
| `due` | datetime | Due date |
| `created` | datetime | Creation timestamp (auto-generated) |
| `modified` | datetime | Last modification timestamp (auto-updated) |
| `depends` | list | Task IDs this task depends on |
| `description` | string | Markdown description/body |
## Configuration
Configuration is stored in `~/.taskreporc`:
```yaml
parent_dir: ~/tasks
default_priority: M
default_status: pending
default_assignee: null # Optional: GitHub handle (e.g., @username)
default_editor: null # Optional: Text editor (e.g., vim, nano, code)
sort_by:
- priority
- due
```
### Editor Selection Priority
When editing tasks with `tsk edit`, the editor is selected in this order:
1. CLI flag: `tsk edit 123 --editor nano`
2. Environment variable: `$EDITOR`
3. Config file: `default_editor` in `~/.taskreporc`
4. Fallback: `vim`
## Directory Structure
```
~/tasks/
tasks-work/
.git/
tasks/
task-001.md
task-002.md
task-003.md
tasks-personal/
.git/
tasks/
task-001.md
tasks-opensource/
.git/
tasks/
task-001.md
```
## Examples
### Create a high-priority bug task
```bash
tsk add \
--repo work \
--title "Fix memory leak in worker process" \
--priority H \
--project backend \
--assignees @alice,@bob \
--tags bug,performance \
--due "2025-11-01" \
--description "Memory usage grows unbounded in background worker"
```
### List urgent tasks
```bash
tsk list --priority H --status pending
```
### List tasks assigned to a specific user
```bash
tsk list --assignee @alice
```
### Edit a task in your editor
```bash
EDITOR=vim tsk edit 001
# Or with custom editor
tsk edit 001 --editor code
```
## Development
### Setup
```bash
# Clone repository
git clone https://github.com/henriqueslab/TaskRepo.git
cd TaskRepo
# Install with dev dependencies
uv sync --extra dev
# Install pre-commit hooks (optional but recommended)
uv run pre-commit install
```
### Run tests
```bash
# Run all tests
uv run pytest tests/ -v
# Run with coverage
uv run pytest tests/ -v --cov=taskrepo --cov-report=term-missing
# Run specific test types
uv run pytest tests/unit -v # Unit tests only
uv run pytest tests/integration -v # Integration tests only
```
### Code quality
```bash
# Format code
uv run ruff format .
# Lint code
uv run ruff check .
# Type checking
uv run mypy src/taskrepo
# Run all quality checks (what CI runs)
uv run ruff format --check .
uv run ruff check .
uv run mypy src/taskrepo
uv run pytest tests/ -v
```
### Pre-commit hooks
We use pre-commit to ensure code quality before commits:
```bash
# Install hooks
uv run pre-commit install
# Run manually on all files
uv run pre-commit run --all-files
# Skip hooks for a specific commit (use sparingly)
git commit --no-verify
```
The following checks run automatically on commit:
- **ruff format**: Code formatting
- **ruff**: Linting and import sorting
- **mypy**: Static type checking
- **trailing-whitespace**: Remove trailing spaces
- **end-of-file-fixer**: Ensure files end with newline
- **check-yaml/toml**: Validate config files
### CI/CD Pipeline
TaskRepo uses GitHub Actions for continuous integration and deployment:
#### CI Workflow (`.github/workflows/ci.yml`)
Runs on every push and pull request to `main`:
1. **Lint & Type Check** (Python 3.11)
- Code formatting check with ruff
- Linting with ruff
- Type checking with mypy
2. **Tests** (Python 3.10, 3.11, 3.12)
- Unit tests
- Integration tests
- Matrix testing across Python versions
3. **Coverage Report** (Python 3.11)
- Full test suite with coverage measurement
- Coverage report uploaded as artifact
4. **Build Verification** (Python 3.11)
- Package build (wheel + sdist)
- Metadata verification
- Build artifacts uploaded for inspection
#### Release Workflow (`.github/workflows/release.yml`)
Automatically triggered when you push a version tag (e.g., `v0.2.0`):
1. **Validation**
- Verify tag version matches `__version__.py`
- Check CHANGELOG.md has entry for this version
- Run full test suite
2. **PyPI Publishing**
- Build package (wheel + sdist)
- Publish to PyPI using OIDC trusted publishing (secure, no API tokens needed)
3. **GitHub Release**
- Extract release notes from CHANGELOG.md
- Create GitHub release with auto-generated notes
- Attach wheel and sdist as release assets
### Creating a Release
To create a new release:
1. **Update version** in `src/taskrepo/__version__.py`:
```python
__version__ = "0.2.0"
```
2. **Update CHANGELOG.md** with release notes:
```markdown
## [0.2.0] - 2025-10-25
### Added
- New feature X
- New feature Y
### Fixed
- Bug fix Z
```
3. **Commit changes**:
```bash
git add src/taskrepo/__version__.py CHANGELOG.md
git commit -m "chore: bump version to 0.2.0"
git push
```
4. **Create and push tag**:
```bash
git tag v0.2.0
git push origin v0.2.0
```
5. **Monitor release**:
- GitHub Actions will automatically run the release workflow
- Check [Actions tab](https://github.com/HenriquesLab/TaskRepo/actions) for progress
- Package will be published to [PyPI](https://pypi.org/project/taskrepo/)
- GitHub release will be created with artifacts
### Dependency Management
Dependencies are automatically monitored by Dependabot:
- Python dependencies updated weekly
- GitHub Actions updated weekly
- PRs are auto-labeled and grouped for easier review
## Contributing
Contributions are welcome! Please:
1. Fork the repository
2. Create a feature branch
3. Make your changes with tests
4. Run the test suite
5. Submit a pull request
## License
MIT License - see [LICENSE](LICENSE) for details.
## Acknowledgments
- Inspired by [TaskWarrior](https://taskwarrior.org/)
- Built with [Click](https://click.palletsprojects.com/), [prompt_toolkit](https://python-prompt-toolkit.readthedocs.io/), and [Rich](https://rich.readthedocs.io/)
- Package management by [UV](https://docs.astral.sh/uv/)
## Roadmap
- [ ] Dependency validation and visualization
- [ ] Task templates
- [ ] Recurrence support
- [ ] Time tracking
- [ ] Export to other formats (JSON, CSV, HTML)
- [ ] GitHub integration (create issues from tasks)
- [ ] Task search with advanced queries
- [ ] Statistics and reporting
- [ ] Shell completion (bash, zsh, fish)
- [ ] Web UI for task visualization
Raw data
{
"_id": null,
"home_page": null,
"name": "taskrepo",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "cli, git, markdown, productivity, task-management, taskwarrior",
"author": null,
"author_email": "Ricardo Henriques <paxcalpt@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/63/1a/85518a00e2a823d27b0c09149eecafa9d554f7f11666d57a51891968733d/taskrepo-0.4.0.tar.gz",
"platform": null,
"description": "# TaskRepo\n\n[](https://github.com/HenriquesLab/TaskRepo/actions/workflows/ci.yml)\n[](https://badge.fury.io/py/taskrepo)\n[](https://pypi.org/project/taskrepo/)\n[](https://opensource.org/licenses/MIT)\n\n> TaskWarrior-inspired CLI for managing tasks as markdown files in git repositories\n\nTaskRepo is a powerful command-line task management tool that combines the best of TaskWarrior's workflow with the simplicity of markdown and the collaboration features of git.\n\n## Features\n\n- **Git-backed storage**: All tasks are stored as markdown files in git repositories\n- **TaskWarrior-inspired**: Familiar workflow with priorities, tags, dependencies, and due dates\n- **Rich metadata**: YAML frontmatter for structured task data\n- **Link associations**: Attach URLs to tasks (GitHub issues, PRs, emails, documentation, etc.)\n- **Interactive TUI**: User-friendly prompts with autocomplete and validation\n- **Multiple repositories**: Organize tasks across different projects or contexts\n- **GitHub integration**: Associate tasks with GitHub user handles\n- **Beautiful output**: Rich terminal formatting with tables and colors\n- **Version control**: Full git history and collaboration capabilities\n\n## Installation\n\n### Using pipx (recommended)\n\n```bash\n# Install pipx if you haven't already\npython3 -m pip install --user pipx\npython3 -m pipx ensurepath\n\n# Install TaskRepo\npipx install taskrepo\n```\n\nBenefits: Isolated environment, global CLI access, easy updates with `pipx upgrade taskrepo`\n\n### Using uv (fast alternative)\n\n```bash\n# Install uv if you haven't already\ncurl -LsSf https://astral.sh/uv/install.sh | sh\n\n# Install TaskRepo\nuv tool install taskrepo\n```\n\nBenefits: Very fast installation, modern Python tooling, automatic environment management\n\n### Using pip (alternative)\n\n```bash\npip install taskrepo\n```\n\nNote: May conflict with other packages. Consider using pipx or uv instead.\n\n## Quick Start\n\n> **Note**: You can use either `tsk` (short alias) or `taskrepo` (full command). Examples below use `tsk` for brevity.\n\n### 1. Initialize TaskRepo\n\n```bash\ntsk init\n```\n\nThis creates a configuration file at `~/.taskreporc` and sets up the parent directory for task repositories (default: `~/tasks`).\n\n### 2. Create a repository\n\n```bash\ntsk create-repo work\ntsk create-repo personal\n```\n\nRepositories are stored as `tasks-{name}` directories with git initialization.\n\n### 3. Add a task\n\n```bash\n# Interactive mode (default)\ntsk add\n\n# Non-interactive mode\ntsk add -r work -t \"Fix authentication bug\" -p backend --priority H --assignees @alice,@bob --tags bug,security\n\n# With associated links (GitHub issues, emails, docs, etc.)\ntsk add -r work -t \"Fix authentication bug\" -p backend --links https://github.com/org/repo/issues/123,https://mail.google.com/mail/u/0/#inbox/abc\n```\n\n### 4. List tasks\n\n```bash\n# List all tasks\ntsk list\n\n# Filter by repository\ntsk list --repo work\n\n# Filter by status, priority, or project\ntsk list --status pending --priority H\ntsk list --project backend\n\n# Show completed tasks\ntsk list --all\n```\n\n### 5. Manage tasks\n\n```bash\n# Mark task as done\ntsk done 001\n\n# Edit a task\ntsk edit 001\n\n# Sync with git remote\ntsk sync\ntsk sync --repo work # Sync specific repository\n```\n\n## Task File Format\n\nTasks are stored as markdown files with YAML frontmatter:\n\n```markdown\n---\nid: '001'\ntitle: Fix authentication bug\nstatus: pending\npriority: H\nproject: backend\nassignees:\n- '@alice'\n- '@bob'\ntags:\n- bug\n- security\nlinks:\n- https://github.com/org/repo/issues/123\n- https://mail.google.com/mail/u/0/#inbox/abc123\ndue: '2025-11-15T00:00:00'\ncreated: '2025-10-20T10:30:00'\nmodified: '2025-10-20T14:22:00'\ndepends:\n- '002'\n---\n\n## Description\n\nThe login endpoint is not properly validating JWT tokens.\n\n## Steps to reproduce\n\n1. Attempt to login with expired token\n2. Observe that access is granted\n\n## Solution\n\nUpdate JWT validation middleware to check expiration.\n```\n\n## Commands Reference\n\n### Configuration\n\n- `tsk init` - Initialize TaskRepo configuration\n- `tsk config` - Show current configuration\n- `tsk create-repo <name>` - Create a new task repository\n- `tsk repos` - List all task repositories\n\n### Task Management\n\n- `tsk add` - Add a new task (interactive)\n- `tsk list` - List tasks with filters\n- `tsk edit <id>` - Edit a task\n- `tsk done <id>` - Mark task as completed\n- `tsk delete <id>` - Delete a task\n\n### Git Operations\n\n- `tsk sync` - Pull and push all repositories\n- `tsk sync --repo <name>` - Sync specific repository\n- `tsk sync --no-push` - Pull only, don't push\n\n## Task Fields\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `id` | string | Unique task identifier (auto-generated) |\n| `title` | string | Task title (required) |\n| `status` | string | Task status: `pending`, `in_progress`, `completed`, `cancelled` |\n| `priority` | string | Priority level: `H` (High), `M` (Medium), `L` (Low) |\n| `project` | string | Project name (optional) |\n| `assignees` | list | GitHub user handles (e.g., `@username`) |\n| `tags` | list | Tags for categorization |\n| `due` | datetime | Due date |\n| `created` | datetime | Creation timestamp (auto-generated) |\n| `modified` | datetime | Last modification timestamp (auto-updated) |\n| `depends` | list | Task IDs this task depends on |\n| `description` | string | Markdown description/body |\n\n## Configuration\n\nConfiguration is stored in `~/.taskreporc`:\n\n```yaml\nparent_dir: ~/tasks\ndefault_priority: M\ndefault_status: pending\ndefault_assignee: null # Optional: GitHub handle (e.g., @username)\ndefault_editor: null # Optional: Text editor (e.g., vim, nano, code)\nsort_by:\n - priority\n - due\n```\n\n### Editor Selection Priority\n\nWhen editing tasks with `tsk edit`, the editor is selected in this order:\n1. CLI flag: `tsk edit 123 --editor nano`\n2. Environment variable: `$EDITOR`\n3. Config file: `default_editor` in `~/.taskreporc`\n4. Fallback: `vim`\n\n## Directory Structure\n\n```\n~/tasks/\n tasks-work/\n .git/\n tasks/\n task-001.md\n task-002.md\n task-003.md\n tasks-personal/\n .git/\n tasks/\n task-001.md\n tasks-opensource/\n .git/\n tasks/\n task-001.md\n```\n\n## Examples\n\n### Create a high-priority bug task\n\n```bash\ntsk add \\\n --repo work \\\n --title \"Fix memory leak in worker process\" \\\n --priority H \\\n --project backend \\\n --assignees @alice,@bob \\\n --tags bug,performance \\\n --due \"2025-11-01\" \\\n --description \"Memory usage grows unbounded in background worker\"\n```\n\n### List urgent tasks\n\n```bash\ntsk list --priority H --status pending\n```\n\n### List tasks assigned to a specific user\n\n```bash\ntsk list --assignee @alice\n```\n\n### Edit a task in your editor\n\n```bash\nEDITOR=vim tsk edit 001\n# Or with custom editor\ntsk edit 001 --editor code\n```\n\n## Development\n\n### Setup\n\n```bash\n# Clone repository\ngit clone https://github.com/henriqueslab/TaskRepo.git\ncd TaskRepo\n\n# Install with dev dependencies\nuv sync --extra dev\n\n# Install pre-commit hooks (optional but recommended)\nuv run pre-commit install\n```\n\n### Run tests\n\n```bash\n# Run all tests\nuv run pytest tests/ -v\n\n# Run with coverage\nuv run pytest tests/ -v --cov=taskrepo --cov-report=term-missing\n\n# Run specific test types\nuv run pytest tests/unit -v # Unit tests only\nuv run pytest tests/integration -v # Integration tests only\n```\n\n### Code quality\n\n```bash\n# Format code\nuv run ruff format .\n\n# Lint code\nuv run ruff check .\n\n# Type checking\nuv run mypy src/taskrepo\n\n# Run all quality checks (what CI runs)\nuv run ruff format --check .\nuv run ruff check .\nuv run mypy src/taskrepo\nuv run pytest tests/ -v\n```\n\n### Pre-commit hooks\n\nWe use pre-commit to ensure code quality before commits:\n\n```bash\n# Install hooks\nuv run pre-commit install\n\n# Run manually on all files\nuv run pre-commit run --all-files\n\n# Skip hooks for a specific commit (use sparingly)\ngit commit --no-verify\n```\n\nThe following checks run automatically on commit:\n- **ruff format**: Code formatting\n- **ruff**: Linting and import sorting\n- **mypy**: Static type checking\n- **trailing-whitespace**: Remove trailing spaces\n- **end-of-file-fixer**: Ensure files end with newline\n- **check-yaml/toml**: Validate config files\n\n### CI/CD Pipeline\n\nTaskRepo uses GitHub Actions for continuous integration and deployment:\n\n#### CI Workflow (`.github/workflows/ci.yml`)\n\nRuns on every push and pull request to `main`:\n\n1. **Lint & Type Check** (Python 3.11)\n - Code formatting check with ruff\n - Linting with ruff\n - Type checking with mypy\n\n2. **Tests** (Python 3.10, 3.11, 3.12)\n - Unit tests\n - Integration tests\n - Matrix testing across Python versions\n\n3. **Coverage Report** (Python 3.11)\n - Full test suite with coverage measurement\n - Coverage report uploaded as artifact\n\n4. **Build Verification** (Python 3.11)\n - Package build (wheel + sdist)\n - Metadata verification\n - Build artifacts uploaded for inspection\n\n#### Release Workflow (`.github/workflows/release.yml`)\n\nAutomatically triggered when you push a version tag (e.g., `v0.2.0`):\n\n1. **Validation**\n - Verify tag version matches `__version__.py`\n - Check CHANGELOG.md has entry for this version\n - Run full test suite\n\n2. **PyPI Publishing**\n - Build package (wheel + sdist)\n - Publish to PyPI using OIDC trusted publishing (secure, no API tokens needed)\n\n3. **GitHub Release**\n - Extract release notes from CHANGELOG.md\n - Create GitHub release with auto-generated notes\n - Attach wheel and sdist as release assets\n\n### Creating a Release\n\nTo create a new release:\n\n1. **Update version** in `src/taskrepo/__version__.py`:\n ```python\n __version__ = \"0.2.0\"\n ```\n\n2. **Update CHANGELOG.md** with release notes:\n ```markdown\n ## [0.2.0] - 2025-10-25\n\n ### Added\n - New feature X\n - New feature Y\n\n ### Fixed\n - Bug fix Z\n ```\n\n3. **Commit changes**:\n ```bash\n git add src/taskrepo/__version__.py CHANGELOG.md\n git commit -m \"chore: bump version to 0.2.0\"\n git push\n ```\n\n4. **Create and push tag**:\n ```bash\n git tag v0.2.0\n git push origin v0.2.0\n ```\n\n5. **Monitor release**:\n - GitHub Actions will automatically run the release workflow\n - Check [Actions tab](https://github.com/HenriquesLab/TaskRepo/actions) for progress\n - Package will be published to [PyPI](https://pypi.org/project/taskrepo/)\n - GitHub release will be created with artifacts\n\n### Dependency Management\n\nDependencies are automatically monitored by Dependabot:\n- Python dependencies updated weekly\n- GitHub Actions updated weekly\n- PRs are auto-labeled and grouped for easier review\n\n## Contributing\n\nContributions are welcome! Please:\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes with tests\n4. Run the test suite\n5. Submit a pull request\n\n## License\n\nMIT License - see [LICENSE](LICENSE) for details.\n\n## Acknowledgments\n\n- Inspired by [TaskWarrior](https://taskwarrior.org/)\n- Built with [Click](https://click.palletsprojects.com/), [prompt_toolkit](https://python-prompt-toolkit.readthedocs.io/), and [Rich](https://rich.readthedocs.io/)\n- Package management by [UV](https://docs.astral.sh/uv/)\n\n## Roadmap\n\n- [ ] Dependency validation and visualization\n- [ ] Task templates\n- [ ] Recurrence support\n- [ ] Time tracking\n- [ ] Export to other formats (JSON, CSV, HTML)\n- [ ] GitHub integration (create issues from tasks)\n- [ ] Task search with advanced queries\n- [ ] Statistics and reporting\n- [ ] Shell completion (bash, zsh, fish)\n- [ ] Web UI for task visualization\n",
"bugtrack_url": null,
"license": null,
"summary": "TaskWarrior-inspired CLI for managing tasks as markdown files in git repositories",
"version": "0.4.0",
"project_urls": {
"Homepage": "https://github.com/henriqueslab/TaskRepo",
"Issues": "https://github.com/henriqueslab/TaskRepo/issues",
"Repository": "https://github.com/henriqueslab/TaskRepo"
},
"split_keywords": [
"cli",
" git",
" markdown",
" productivity",
" task-management",
" taskwarrior"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "2c47696a4ec781edc4558985509a7e7160d2238cdc7c371eb8027eb83f4c8153",
"md5": "985902ec7723fa64205c5ed0af516934",
"sha256": "db9f7dd8ff39e47e579fac0efee1dea73e895a27461d85725587256e3b59f472"
},
"downloads": -1,
"filename": "taskrepo-0.4.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "985902ec7723fa64205c5ed0af516934",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 45706,
"upload_time": "2025-10-22T11:21:09",
"upload_time_iso_8601": "2025-10-22T11:21:09.874198Z",
"url": "https://files.pythonhosted.org/packages/2c/47/696a4ec781edc4558985509a7e7160d2238cdc7c371eb8027eb83f4c8153/taskrepo-0.4.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "631a85518a00e2a823d27b0c09149eecafa9d554f7f11666d57a51891968733d",
"md5": "b2077caeaa01286c0b31b55a862cdcd1",
"sha256": "771a79e678b675c7bef1bae23431896d359f691faf9d548a36e71b3eee8bf873"
},
"downloads": -1,
"filename": "taskrepo-0.4.0.tar.gz",
"has_sig": false,
"md5_digest": "b2077caeaa01286c0b31b55a862cdcd1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 38623,
"upload_time": "2025-10-22T11:21:11",
"upload_time_iso_8601": "2025-10-22T11:21:11.039976Z",
"url": "https://files.pythonhosted.org/packages/63/1a/85518a00e2a823d27b0c09149eecafa9d554f7f11666d57a51891968733d/taskrepo-0.4.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-22 11:21:11",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "henriqueslab",
"github_project": "TaskRepo",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "taskrepo"
}