Skip to content

FreeTodo Usage Guide

Quick Start

Starting Services

Start Backend Service

First Time Setup: On first run, if config.yaml does not exist, the system will automatically copy it from default_config.yaml. You can customize settings by editing lifetrace/config/config.yaml.

Start the server:

bash
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. The actual port will be displayed in the console.

Start Frontend Service

The frontend is required to use FreeTodo. Start the frontend development server:

bash
cd free-todo-frontend

pnpm install
pnpm dev

The 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:

  1. Create a complex task - Enter a high-level task like "Plan a vacation trip"
  2. AI Questionnaire Flow - The AI will ask you guided questions to understand the task better
  3. Automatic Decomposition - Based on your answers, AI creates a structured list of subtasks
  4. 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:

  1. Chat with AI - Have a conversation about your goals or plans
  2. Extract Todos - Click to extract actionable items from the AI's response
  3. 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:

  1. View Calendar - Open the calendar panel
  2. Drag Todo - Drag a todo from the list to a calendar time slot
  3. Auto-schedule - The todo is automatically scheduled for that time

Quick Todo Creation

Create todos directly from calendar:

  1. Click Time Slot - Click on an empty time slot in the calendar
  2. Quick Create - A dialog opens to create a new todo
  3. 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 README

Best 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