# ToDoWrite CLI
A command-line interface for managing complex software projects with Goals, Tasks, Concepts, and Commands.
## Prerequisites
You must first install the todowrite library:
```bash
pip install todowrite
```
## Installation
```bash
pip install todowrite-cli
```
For PostgreSQL support:
```bash
pip install 'todowrite-cli[postgres]'
```
## Quick Start
### Initialize a project
```bash
todowrite init --database-path myproject.db
```
### Create a Goal
```bash
todowrite create --goal "Implement User Authentication" --description "Create secure user authentication system"
```
### Create a Task
```bash
todowrite create --task "Design Database Schema" --description "Design and implement database schema for users"
```
### Create a Concept
```bash
todowrite create --concept "OAuth2 Flow" --description "OAuth2 authentication flow implementation"
```
### Create a Command
```bash
todowrite create --command "Build Project" --description "Build the entire project" \
--run-shell "make build" --artifacts "dist/"
```
### Link Nodes
```bash
todowrite link --parent "GOAL-001" --child "TSK-001"
```
### Update Progress
```bash
todowrite status update --id "TSK-001" --status in_progress --progress 50
```
### View Project Status
```bash
todowrite status list
todowrite status show --id "GOAL-001"
```
### Import/Export YAML
```bash
todowrite import-yaml --yaml ./configs/
todowrite export-yaml --output ./backup/
```
## Commands
### Project Management
- `init` - Initialize a new project
- `create` - Create new nodes (goals, tasks, concepts, commands)
- `get` - Get a specific node by ID
- `list` - List all nodes with their status
- `status show` - Show detailed information about a specific node
### Status Management
- `status update` - Update node status and progress
- `status complete` - Mark a node as completed
- `status list` - List all nodes with their status
### Import/Export
- `import-yaml` - Import nodes from YAML files
- `export-yaml` - Export nodes to YAML files
- `sync-status` - Check synchronization status between YAML files and database
### Database Management
- `db-status` - Show storage configuration and status
## Configuration
Configuration is stored in `~/.todowrite/config.yaml`:
```yaml
database:
default_path: "./todowrite.db"
storage: "sqlite" # or "postgresql"
yaml:
base_path: "./configs"
ui:
colors: true
table_format: "fancy_grid"
```
## Development
### Setup Development Environment
```bash
git clone https://github.com/dderyldowney/todowrite.git
cd todowrite/cli_package
pip install -e .[dev]
```
### Run Tests
```bash
pytest tests/
```
### Run Linters
```bash
black .
isort .
flake8 .
mypy .
```
### Pre-commit Hooks
```bash
pre-commit install
```
## Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Run tests and linters
5. Submit a pull request
## License
MIT License - see LICENSE file for details.
Raw data
{
"_id": null,
"home_page": null,
"name": "todowrite-cli",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.12",
"maintainer_email": null,
"keywords": "cli, commands, concepts, goals, management, project, task, tasks, todo",
"author": null,
"author_email": "D Deryl Downey <dderyldowney@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/54/09/947e9dba003511dac66fe58f1360d005083fb6f6b84f34f69b5e9d75e039/todowrite_cli-0.2.2.tar.gz",
"platform": null,
"description": "# ToDoWrite CLI\n\nA command-line interface for managing complex software projects with Goals, Tasks, Concepts, and Commands.\n\n## Prerequisites\n\nYou must first install the todowrite library:\n```bash\npip install todowrite\n```\n\n## Installation\n\n```bash\npip install todowrite-cli\n```\n\nFor PostgreSQL support:\n```bash\npip install 'todowrite-cli[postgres]'\n```\n\n## Quick Start\n\n### Initialize a project\n\n```bash\ntodowrite init --database-path myproject.db\n```\n\n### Create a Goal\n\n```bash\ntodowrite create --goal \"Implement User Authentication\" --description \"Create secure user authentication system\"\n```\n\n### Create a Task\n\n```bash\ntodowrite create --task \"Design Database Schema\" --description \"Design and implement database schema for users\"\n```\n\n### Create a Concept\n\n```bash\ntodowrite create --concept \"OAuth2 Flow\" --description \"OAuth2 authentication flow implementation\"\n```\n\n### Create a Command\n\n```bash\ntodowrite create --command \"Build Project\" --description \"Build the entire project\" \\\n --run-shell \"make build\" --artifacts \"dist/\"\n```\n\n### Link Nodes\n\n```bash\ntodowrite link --parent \"GOAL-001\" --child \"TSK-001\"\n```\n\n### Update Progress\n\n```bash\ntodowrite status update --id \"TSK-001\" --status in_progress --progress 50\n```\n\n### View Project Status\n\n```bash\ntodowrite status list\ntodowrite status show --id \"GOAL-001\"\n```\n\n### Import/Export YAML\n\n```bash\ntodowrite import-yaml --yaml ./configs/\ntodowrite export-yaml --output ./backup/\n```\n\n## Commands\n\n### Project Management\n- `init` - Initialize a new project\n- `create` - Create new nodes (goals, tasks, concepts, commands)\n- `get` - Get a specific node by ID\n- `list` - List all nodes with their status\n- `status show` - Show detailed information about a specific node\n\n### Status Management\n- `status update` - Update node status and progress\n- `status complete` - Mark a node as completed\n- `status list` - List all nodes with their status\n\n### Import/Export\n- `import-yaml` - Import nodes from YAML files\n- `export-yaml` - Export nodes to YAML files\n- `sync-status` - Check synchronization status between YAML files and database\n\n### Database Management\n- `db-status` - Show storage configuration and status\n\n## Configuration\n\nConfiguration is stored in `~/.todowrite/config.yaml`:\n\n```yaml\ndatabase:\n default_path: \"./todowrite.db\"\n storage: \"sqlite\" # or \"postgresql\"\n\nyaml:\n base_path: \"./configs\"\n\nui:\n colors: true\n table_format: \"fancy_grid\"\n```\n\n## Development\n\n### Setup Development Environment\n\n```bash\ngit clone https://github.com/dderyldowney/todowrite.git\ncd todowrite/cli_package\npip install -e .[dev]\n```\n\n### Run Tests\n\n```bash\npytest tests/\n```\n\n### Run Linters\n\n```bash\nblack .\nisort .\nflake8 .\nmypy .\n```\n\n### Pre-commit Hooks\n\n```bash\npre-commit install\n```\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Run tests and linters\n5. Submit a pull request\n\n## License\n\nMIT License - see LICENSE file for details.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "CLI interface for ToDoWrite - A tool for managing complex software projects",
"version": "0.2.2",
"project_urls": {
"Bug Tracker": "https://github.com/dderyldowney/todowrite/issues",
"Documentation": "https://github.com/dderyldowney/todowrite/blob/main/README.md",
"Homepage": "https://github.com/dderyldowney/todowrite",
"Repository": "https://github.com/dderyldowney/todowrite.git"
},
"split_keywords": [
"cli",
" commands",
" concepts",
" goals",
" management",
" project",
" task",
" tasks",
" todo"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "1f4a4efe89bd48cc50bb42306631edba41970b3d69af8960d0ea4d6b40cfc921",
"md5": "3d9e8695519f7a0a56b7aa5b93843448",
"sha256": "dcad7c580b4472717d0014c471d89786b052dc818e0b84429d705b801fc4ff1c"
},
"downloads": -1,
"filename": "todowrite_cli-0.2.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3d9e8695519f7a0a56b7aa5b93843448",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.12",
"size": 9517,
"upload_time": "2025-11-02T22:38:09",
"upload_time_iso_8601": "2025-11-02T22:38:09.453736Z",
"url": "https://files.pythonhosted.org/packages/1f/4a/4efe89bd48cc50bb42306631edba41970b3d69af8960d0ea4d6b40cfc921/todowrite_cli-0.2.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5409947e9dba003511dac66fe58f1360d005083fb6f6b84f34f69b5e9d75e039",
"md5": "67bd00e2dcaa10be3f3ccd1d88e4042f",
"sha256": "6feb835b89dc02a9f125a9bb443684b31d784dd292bee2ea2175a4089aac50bf"
},
"downloads": -1,
"filename": "todowrite_cli-0.2.2.tar.gz",
"has_sig": false,
"md5_digest": "67bd00e2dcaa10be3f3ccd1d88e4042f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.12",
"size": 9501,
"upload_time": "2025-11-02T22:38:10",
"upload_time_iso_8601": "2025-11-02T22:38:10.487808Z",
"url": "https://files.pythonhosted.org/packages/54/09/947e9dba003511dac66fe58f1360d005083fb6f6b84f34f69b5e9d75e039/todowrite_cli-0.2.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-11-02 22:38:10",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "dderyldowney",
"github_project": "todowrite",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "sqlalchemy",
"specs": [
[
">=",
"2.0.0"
]
]
},
{
"name": "typing-extensions",
"specs": [
[
">=",
"4.0.0"
]
]
},
{
"name": "click",
"specs": [
[
">=",
"8.0.0"
]
]
},
{
"name": "psycopg2-binary",
"specs": [
[
">=",
"2.9.0"
]
]
},
{
"name": "PyYAML",
"specs": [
[
">=",
"6.0.0"
]
]
},
{
"name": "jsonschema",
"specs": [
[
">=",
"4.0.0"
]
]
}
],
"lcname": "todowrite-cli"
}