| logs | ||
| src | ||
| Dockerfile | ||
| go.mod | ||
| go.sum | ||
| improvements.md | ||
| LICENSE | ||
| main.go | ||
| Makefile | ||
| README.md | ||
| todo | ||
| todo.log | ||
| todoai | ||
| todoai.db | ||
TodoAI - AI-Powered Task Manager
A terminal-based task manager with AI-powered task analysis and organization.
Features
- Terminal User Interface (TUI) for managing tasks
- AI-powered task analysis (priority, category, time estimates)
- Background analysis during idle hours
- Task searching and filtering
- Multiple AI model support with fallback mechanisms
- SQLite database with connection pooling
- Configurable via environment variables
Installation
Prerequisites
- Go 1.21 or higher
- SQLite3
- Ollama (for AI analysis)
Building from source
- Clone the repository:
git clone https://github.com/your-username/todo
cd todo
- Install dependencies:
make install-deps
- Build the application:
make build
Using Docker
Build and run with Docker:
make docker-build
make docker-run
Configuration
The application can be configured using environment variables:
Database Settings
DB_PATH: Path to SQLite database (default: "todoai.db")DB_MAX_OPEN_CONNS: Maximum open connections (default: 25)DB_MAX_IDLE_CONNS: Maximum idle connections (default: 5)DB_CONN_MAX_LIFETIME: Connection lifetime in minutes (default: 5)
AI Settings
AI_MODEL_NAME: Name of the AI model (default: "deepseek-r1:latest")AI_PROVIDER: AI provider (default: "ollama")AI_API_KEY: API key for AI service (if required)
UI Settings
UI_THEME: UI theme (default: "default")UI_REFRESH_INTERVAL: Task list refresh interval in seconds (default: 60)UI_IDLE_START_HOUR: Start hour for background analysis (default: 22)UI_IDLE_END_HOUR: End hour for background analysis (default: 6)UI_MAX_DISPLAY_TASKS: Maximum tasks to display (default: 100)
Usage
Keyboard Shortcuts
n: New task/: Search tasksTAB: Toggle completed tasksc: Complete selected taskqorCtrl+C: QuitESC: Cancel current actionEnter: Select/confirm
Development
Running Tests
make test
Code Quality
make lint
Pre-commit Checks
make pre-commit
Project Structure
.
├── src/
│ ├── ai/ # AI analysis functionality
│ ├── config/ # Configuration management
│ ├── database/ # Database operations
│ ├── models/ # Data models
│ └── ui/ # Terminal UI
├── main.go # Application entry point
├── Dockerfile # Container configuration
└── Makefile # Build and development tasks
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting (
make pre-commit) - Submit a pull request
License
MIT License - see LICENSE file for details