FreeTodo Usage Guide
Quick Start
Starting Services
Start Backend Service
First Time Setup: On first run, if
config.yamldoes not exist, the system will automatically copy it fromdefault_config.yaml. You can customize settings by editinglifetrace/config/config.yaml.
Start the server:
python -m lifetrace.serverCustomize 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. The actual port will be displayed in the console.
Start Frontend Service
The frontend is required to use FreeTodo. Start the frontend development server:
cd free-todo-frontend
pnpm install
pnpm devThe frontend development server will automatically find an available port starting from 3001 and detect the backend port automatically.
Start Using
Once both services are running, visit the frontend URL displayed in the console (typically http://localhost:3001) in your browser to start using FreeTodo! 🎉
Core Features Usage
🤖 AI Smart Assistant
Intelligent Task Breakdown
FreeTodo's AI can automatically break down complex tasks into manageable subtasks:
- Create a complex task - Enter a high-level task like "Plan a vacation trip"
- AI Questionnaire Flow - The AI will ask you guided questions to understand the task better
- Automatic Decomposition - Based on your answers, AI creates a structured list of subtasks
- Review and Adjust - You can review, edit, or add more subtasks as needed
Smart Task Extraction
When chatting with the AI assistant, you can extract actionable todos from the conversation:
- Chat with AI - Have a conversation about your goals or plans
- Extract Todos - Click to extract actionable items from the AI's response
- Auto-create Tasks - The extracted items are automatically added to your todo list
Context-Aware Suggestions
The AI provides task recommendations based on your current todo context:
- Related Tasks - Suggests tasks related to your current work
- Next Steps - Recommends logical next actions
- Priority Guidance - Helps prioritize tasks based on deadlines and importance
✅ Task Management
Creating Todos
Quick Create:
- Click the "+" button or use keyboard shortcuts
- Enter task title and press Enter
Detailed Create:
- Click "Add Todo" and fill in:
- Title (required)
- Description/Notes
- Priority (Urgent/High/Medium/Low)
- Deadline
- Tags
- Parent task (for hierarchical structure)
Hierarchical Tasks
FreeTodo supports unlimited task nesting:
- Parent Tasks - High-level goals or projects
- Child Tasks - Subtasks that belong to a parent
- Nested Structure - Create multi-level task hierarchies
Example:
📋 Launch New Product (Parent)
├── 📝 Design UI Mockups (Child)
├── 💻 Develop Backend API (Child)
│ ├── Set up database (Grandchild)
│ └── Implement authentication (Grandchild)
└── 📧 Prepare Marketing Materials (Child)Priority & Status Management
Priority Levels:
- 🔴 Urgent - Must be done immediately
- 🟠 High - Important, should be done soon
- 🟡 Medium - Normal priority
- 🟢 Low - Can be done later
Status States:
- 📋 Todo - Not started
- 🚧 In Progress - Currently working on
- ✅ Completed - Finished
- ⏸️ Paused - Temporarily stopped
- ❌ Cancelled - No longer needed
Tags & Categories
Organize your todos with custom tags:
- Create Tags - Add tags when creating or editing todos
- Filter by Tags - Use tag filters to view specific groups of tasks
- Tag Management - Manage your tag list in settings
Deadline Management
- Set Deadlines - Add due dates to tasks
- Visual Reminders - Deadlines are highlighted in the calendar
- Overdue Alerts - Get notified about overdue tasks
📅 Calendar Views
Day/Week/Month Views
Switch between different calendar views:
- Day View - See all tasks scheduled for a specific day
- Week View - Overview of the week's schedule
- Month View - Monthly calendar with task indicators
Drag & Drop Scheduling
Easily schedule your todos:
- View Calendar - Open the calendar panel
- Drag Todo - Drag a todo from the list to a calendar time slot
- Auto-schedule - The todo is automatically scheduled for that time
Quick Todo Creation
Create todos directly from calendar:
- Click Time Slot - Click on an empty time slot in the calendar
- Quick Create - A dialog opens to create a new todo
- Auto-scheduled - The todo is automatically scheduled for that time
🎨 Interface Customization
Multi-Panel Layout
FreeTodo features a flexible multi-panel layout:
- Todo List Panel - View and manage your todos
- Chat Panel - Interact with AI assistant
- Detail Panel - View and edit todo details
- Calendar Panel - Schedule and visualize tasks
Customize Layout:
- Resize panels by dragging borders
- Show/hide panels as needed
- Save your preferred layout
Themes
Switch between themes:
- Light Theme - Clean, bright interface
- Dark Theme - Easy on the eyes for low-light environments
- Multiple Color Schemes - Choose from various color options
Internationalization
FreeTodo supports multiple languages:
- English - Default language
- 中文 - Full Chinese support
- Switch language in settings
Project Structure
Understanding the project structure helps with customization and development:
FreeTodo/
├── .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
├── 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 # English README
└── README_CN.md # Chinese READMEBest Practices
1. Task Organization
- Use hierarchical structure for complex projects
- Apply tags consistently for easy filtering
- Set realistic deadlines and priorities
2. AI Assistant Usage
- Use AI task breakdown for large, complex projects
- Extract todos from conversations to capture ideas quickly
- Review AI suggestions and adjust as needed
3. Calendar Management
- Schedule important tasks in advance
- Use drag-and-drop for quick rescheduling
- Review your schedule regularly
4. Productivity Tips
- Break down large tasks into smaller, actionable items
- Use priority levels to focus on what matters most
- Regularly review and update task status
Next Steps
- Visit GitHub Repository to participate in development
- Join community discussions and feedback
- Explore Use Cases for inspiration