Auto-Manage Your Personal Task Context with AI.
TypeScript
2,499
990 commits
updated May 12, 2026

📖 Documentation • 🚀 Quick Start • 💡 Features • 🔧 Development • 🤝 Contributing
FreeTodo is an AI-powered intelligent todo management application that helps you efficiently manage tasks, boost productivity, and achieve your goals. Through conversational AI interaction and smart task breakdown, FreeTodo transforms complex projects into actionable steps.
FreeTodo adopts a frontend-backend separation architecture:
lifetrace/ directory)free-todo-frontend/ directory)Backend:
Frontend:
This project uses uv for fast and reliable dependency management.
Install uv:
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
Note: After installation,
uvmay not be immediately available in the current terminal. To activate it in the current session:
- Windows (PowerShell): Run
$env:Path = "$env:USERPROFILE\.local\bin;$env:Path"to refresh PATH- macOS/Linux: Run
exec $SHELLto reinitialize your shell session, or restart your terminalAlternatively, you can simply open a new terminal window and
uvwill be available automatically.
Install dependencies and sync environment:
# Sync dependencies from pyproject.toml and uv.lock
uv sync
# Activate the virtual environment
# macOS/Linux
source .venv/bin/activate
# Windows
.venv\Scripts\activate
Note: On first run, the system will automatically create
config.yamlfromdefault_config.yamlif it doesn't exist. You can customize your settings by editinglifetrace/config/config.yaml.
Start the server:
python -m lifetrace.server
Customize Prompts: If you want to modify AI prompts for different features, you can edit
lifetrace/config/prompt.yaml.
The backend service will automatically find an available port starting from 8001 (or 8100 for build version). If the default port is occupied, it will automatically use the next available port and display the actual port in the console.
http://localhost:8001http://localhost:8001/docs)The frontend is required to use FreeTodo. Start the frontend development server:
cd free-todo-frontend
pnpm install
pnpm dev
The frontend development server will:
3001 (default port for development)/health endpointThe actual frontend URL and backend connection status will be displayed in the console. Once both services are running, open your browser and navigate to the displayed frontend URL (typically http://localhost:3001) to enjoy FreeTodo! 🎉
Note: If ports are occupied, both frontend and backend will automatically find the next available ports. The console will show the actual ports being used.
For more details, see: free-todo-frontend/README.md
📖 Full Roadmap: Check out the detailed Project Roadmap to learn about the complete vision and development plan of the FreeU project.
Goal: Collect as much information as possible from users' daily lives and gather it as Todos
🎨 UI Dynamic Island
🤖 Agent Development
Free Todo's panel switch bar contains some panels that are currently under development. These panels showcase our future feature directions for community reference and understanding.
🤝 Community Participation: We warmly welcome community members to participate!
💡 Want to contribute? Check out our Contributing Guidelines and pick up any TODO item that interests you!
This repo uses a shared .githooks/ directory. Run the setup script once per clone/worktree:
# macOS/Linux
bash scripts/setup_hooks_here.sh
# Windows (PowerShell)
powershell -ExecutionPolicy Bypass -File scripts/setup_hooks_here.ps1
Note: Do not run
pre-commit installhere. The repo usescore.hooksPathandpre-commit installwill refuse when it is set.
For details, see: .github/PRE_COMMIT_GUIDE.md
├── .github/ # GitHub repository assets
│ ├── assets/ # Static assets (images for README)
│ ├── BACKEND_GUIDELINES.md # Backend development guidelines
│ ├── FRONTEND_GUIDELINES.md # Frontend development guidelines
│ ├── CONTRIBUTING.md # Contributing guidelines
│ └── ... # Other GitHub repository files
├── .githooks/ # Repo-local git hooks (pre-commit, post-checkout)
├── lifetrace/ # Backend modules (FastAPI)
│ ├── server.py # Web API service entry point
│ ├── config/ # Configuration files
│ │ ├── config.yaml # Main configuration (auto-generated)
│ │ ├── default_config.yaml # Default configuration template
│ │ ├── prompt.yaml # AI prompt templates
│ │ └── rapidocr_config.yaml# OCR configuration
│ ├── routers/ # API route handlers
│ │ ├── chat.py # Chat interface endpoints
│ │ ├── todo.py # Todo endpoints
│ │ ├── task.py # Task management endpoints
│ │ └── ... # Other endpoints
│ ├── schemas/ # Pydantic data models
│ ├── services/ # Business logic service layer
│ ├── repositories/ # Data access layer
│ ├── storage/ # Data storage layer
│ ├── llm/ # LLM and AI services
│ ├── jobs/ # Background jobs
│ ├── util/ # Utility functions
│ └── data/ # Runtime data (generated)
│ ├── lifetrace.db # SQLite database
│ ├── vector_db/ # Vector database storage
│ └── logs/ # Application logs
├── free-todo-frontend/ # Frontend application (Next.js) ⭐
│ ├── app/ # Next.js app directory
│ ├── apps/ # Feature modules
│ │ ├── todo-list/ # Todo list module
│ │ ├── todo-detail/ # Todo detail module
│ │ ├── chat/ # AI chat module
│ │ ├── calendar/ # Calendar module
│ │ ├── settings/ # Settings module
│ │ └── ... # Other modules
│ ├── components/ # React components
│ ├── lib/ # Utilities and services
│ ├── electron/ # Electron desktop app
│ ├── package.json # Frontend dependencies
│ └── README.md # Frontend documentation
├── pyproject.toml # Python project configuration
├── uv.lock # uv lock file
├── LICENSE # FreeU Community License
├── README.md # This file (English)
└── README_CN.md # Chinese README
The FreeTodo community is possible thanks to thousands of kind volunteers like you. We welcome all contributions to the community and are excited to welcome you aboard.
Recent Contributions:
We have comprehensive contributing guidelines to help you get started:
git checkout -b feature/amazing-featuregit commit -m 'feat: add some amazing feature'git push origin feature/amazing-featuregood first issue or help wantedWe appreciate all contributions, no matter how small! 🙏
Connect with us and other FreeTodo users! Scan the QR codes below to join our community groups:
| WeChat Group | Feishu Group | Xiaohongshu |
|---|---|---|
Scan to join WeChat group |
Scan to join Feishu group |
Follow us on Xiaohongshu |
We use deepwiki to manage our docs, please refer to this website.
Copyright © 2026 FreeU.org
FreeTodo is licensed under the FreeU Community License, which is based on Apache License 2.0 with additional conditions regarding commercial usage.
For detailed license terms, please see the LICENSE file.
1,844 followers · starred Jun 2026
11 followers · starred May 2026
Auto-Manage Your Personal Task Context with AI.
TypeScript
2,499
990 commits
updated May 12, 2026

📖 Documentation • 🚀 Quick Start • 💡 Features • 🔧 Development • 🤝 Contributing
FreeTodo is an AI-powered intelligent todo management application that helps you efficiently manage tasks, boost productivity, and achieve your goals. Through conversational AI interaction and smart task breakdown, FreeTodo transforms complex projects into actionable steps.
FreeTodo adopts a frontend-backend separation architecture:
lifetrace/ directory)free-todo-frontend/ directory)Backend:
Frontend:
This project uses uv for fast and reliable dependency management.
Install uv:
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
Note: After installation,
uvmay not be immediately available in the current terminal. To activate it in the current session:
- Windows (PowerShell): Run
$env:Path = "$env:USERPROFILE\.local\bin;$env:Path"to refresh PATH- macOS/Linux: Run
exec $SHELLto reinitialize your shell session, or restart your terminalAlternatively, you can simply open a new terminal window and
uvwill be available automatically.
Install dependencies and sync environment:
# Sync dependencies from pyproject.toml and uv.lock
uv sync
# Activate the virtual environment
# macOS/Linux
source .venv/bin/activate
# Windows
.venv\Scripts\activate
Note: On first run, the system will automatically create
config.yamlfromdefault_config.yamlif it doesn't exist. You can customize your settings by editinglifetrace/config/config.yaml.
Start the server:
python -m lifetrace.server
Customize Prompts: If you want to modify AI prompts for different features, you can edit
lifetrace/config/prompt.yaml.
The backend service will automatically find an available port starting from 8001 (or 8100 for build version). If the default port is occupied, it will automatically use the next available port and display the actual port in the console.
http://localhost:8001http://localhost:8001/docs)The frontend is required to use FreeTodo. Start the frontend development server:
cd free-todo-frontend
pnpm install
pnpm dev
The frontend development server will:
3001 (default port for development)/health endpointThe actual frontend URL and backend connection status will be displayed in the console. Once both services are running, open your browser and navigate to the displayed frontend URL (typically http://localhost:3001) to enjoy FreeTodo! 🎉
Note: If ports are occupied, both frontend and backend will automatically find the next available ports. The console will show the actual ports being used.
For more details, see: free-todo-frontend/README.md
📖 Full Roadmap: Check out the detailed Project Roadmap to learn about the complete vision and development plan of the FreeU project.
Goal: Collect as much information as possible from users' daily lives and gather it as Todos
🎨 UI Dynamic Island
🤖 Agent Development
Free Todo's panel switch bar contains some panels that are currently under development. These panels showcase our future feature directions for community reference and understanding.
🤝 Community Participation: We warmly welcome community members to participate!
💡 Want to contribute? Check out our Contributing Guidelines and pick up any TODO item that interests you!
This repo uses a shared .githooks/ directory. Run the setup script once per clone/worktree:
# macOS/Linux
bash scripts/setup_hooks_here.sh
# Windows (PowerShell)
powershell -ExecutionPolicy Bypass -File scripts/setup_hooks_here.ps1
Note: Do not run
pre-commit installhere. The repo usescore.hooksPathandpre-commit installwill refuse when it is set.
For details, see: .github/PRE_COMMIT_GUIDE.md
├── .github/ # GitHub repository assets
│ ├── assets/ # Static assets (images for README)
│ ├── BACKEND_GUIDELINES.md # Backend development guidelines
│ ├── FRONTEND_GUIDELINES.md # Frontend development guidelines
│ ├── CONTRIBUTING.md # Contributing guidelines
│ └── ... # Other GitHub repository files
├── .githooks/ # Repo-local git hooks (pre-commit, post-checkout)
├── lifetrace/ # Backend modules (FastAPI)
│ ├── server.py # Web API service entry point
│ ├── config/ # Configuration files
│ │ ├── config.yaml # Main configuration (auto-generated)
│ │ ├── default_config.yaml # Default configuration template
│ │ ├── prompt.yaml # AI prompt templates
│ │ └── rapidocr_config.yaml# OCR configuration
│ ├── routers/ # API route handlers
│ │ ├── chat.py # Chat interface endpoints
│ │ ├── todo.py # Todo endpoints
│ │ ├── task.py # Task management endpoints
│ │ └── ... # Other endpoints
│ ├── schemas/ # Pydantic data models
│ ├── services/ # Business logic service layer
│ ├── repositories/ # Data access layer
│ ├── storage/ # Data storage layer
│ ├── llm/ # LLM and AI services
│ ├── jobs/ # Background jobs
│ ├── util/ # Utility functions
│ └── data/ # Runtime data (generated)
│ ├── lifetrace.db # SQLite database
│ ├── vector_db/ # Vector database storage
│ └── logs/ # Application logs
├── free-todo-frontend/ # Frontend application (Next.js) ⭐
│ ├── app/ # Next.js app directory
│ ├── apps/ # Feature modules
│ │ ├── todo-list/ # Todo list module
│ │ ├── todo-detail/ # Todo detail module
│ │ ├── chat/ # AI chat module
│ │ ├── calendar/ # Calendar module
│ │ ├── settings/ # Settings module
│ │ └── ... # Other modules
│ ├── components/ # React components
│ ├── lib/ # Utilities and services
│ ├── electron/ # Electron desktop app
│ ├── package.json # Frontend dependencies
│ └── README.md # Frontend documentation
├── pyproject.toml # Python project configuration
├── uv.lock # uv lock file
├── LICENSE # FreeU Community License
├── README.md # This file (English)
└── README_CN.md # Chinese README
The FreeTodo community is possible thanks to thousands of kind volunteers like you. We welcome all contributions to the community and are excited to welcome you aboard.
Recent Contributions:
We have comprehensive contributing guidelines to help you get started:
git checkout -b feature/amazing-featuregit commit -m 'feat: add some amazing feature'git push origin feature/amazing-featuregood first issue or help wantedWe appreciate all contributions, no matter how small! 🙏
Connect with us and other FreeTodo users! Scan the QR codes below to join our community groups:
| WeChat Group | Feishu Group | Xiaohongshu |
|---|---|---|
Scan to join WeChat group |
Scan to join Feishu group |
Follow us on Xiaohongshu |
We use deepwiki to manage our docs, please refer to this website.
Copyright © 2026 FreeU.org
FreeTodo is licensed under the FreeU Community License, which is based on Apache License 2.0 with additional conditions regarding commercial usage.
For detailed license terms, please see the LICENSE file.
1,844 followers · starred Jun 2026
11 followers · starred May 2026