Transform your GitHub repository into an intelligent task management system
An AI-powered todo application that merges the simplicity of plain text markdown files with modern AI capabilities. Your tasks live as .md files in your GitHub repository, ensuring you own your data while leveraging AI for smart task planning and management.
- π€ AI-Powered Task Generation: Transform high-level goals into detailed actionable checklists
- π Git-Native Storage: Tasks stored as markdown files in your GitHub/GitLab repository with full version control
- π Intelligent Search: Real-time search across tasks with folder/repo scope control and keyboard shortcuts
- π Multi-Folder Support: Organize tasks in different folders for multiple projects
- π¬ AI Chat Assistant: Natural language commands to modify and enhance your tasks
- π± Mobile-First Design: Responsive interface with hamburger menu and touch-friendly controls
- β‘ Real-Time Sync: Instant Git synchronization with progress tracking
- π― Smart Priority System: P1-P5 color-coded priority management
- π¦ Archive System: Hide completed tasks without losing data
π Complete Feature List: See features/implementation-evidence.md for detailed implementation evidence
π Architecture Details: See features/concept-and-architecture.md for design principles and vision
Deploy to Google Cloud Run for a production-ready, scalable solution:
# Prerequisites: Install Docker and gcloud CLI
sudo ./hack/install-dependencies.sh
# Authenticate and set project
gcloud auth login
export GOOGLE_CLOUD_PROJECT="your-project-id"
# Deploy latest version
export SOURCE_IMAGE="ghcr.io/florinpeter/am-todos:latest"
./hack/deploy-all.shFor local development or testing:
# Run the latest version
docker run -p 3001:3001 ghcr.io/florinpeter/am-todos:latest
# Or run a specific version
docker run -p 3001:3001 ghcr.io/florinpeter/am-todos:latest
# Using docker-compose
curl -O https://raw.githubusercontent.com/FlorinPeter/am-todos/main/docker-compose.yml
docker-compose up -dAccess the app at: http://localhost:3001
- Latest stable:
ghcr.io/florinpeter/am-todos:latest - Platform support: linux/amd64, linux/arm64
- Registry: GitHub Container Registry
For local development and customization:
- Node.js 16+
- GitHub Personal Access Token (fine-grained, repository-specific)
- AI API Key (Google Gemini or OpenRouter)
-
Clone and navigate to the project:
git clone <repository-url> cd todo
-
Install dependencies:
npm install cd server && npm install && cd ..
-
Configure AI Provider:
The application supports multiple AI providers. Choose one:
Option A: Google Gemini (Default)
# Get API key from: https://makersuite.google.com/app/apikey # Configure in the web UI settings
Option B: OpenRouter (400+ Models)
# Get API key from: https://openrouter.ai/keys # Configure in the web UI settings # Supports models like: anthropic/claude-3.5-sonnet, openai/gpt-4o, etc.
-
Start the application:
# Terminal 1: Start backend cd server && node server.js # Terminal 2: Start frontend npm start
-
Access the app:
- Frontend: http://localhost:3000
- Backend: http://localhost:3001
-
Create a fine-grained Personal Access Token:
- Go to GitHub Settings β Developer Settings β Personal Access Tokens β Fine-grained tokens
- Select your target repository
- Grant Contents permission (read/write)
-
Configure in the app:
- Click the settings icon in the top-right
- Enter your GitHub username, repository name, token, and folder name
- Choose a folder name (defaults to 'todos') - examples: 'work-tasks', 'personal', 'project-alpha'
- The app will automatically create the directory structure for your chosen folder
π Detailed Architecture: See features/concept-and-architecture.md for complete design documentation
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β React Frontend β ββ β Express Backend β ββ β External APIs β
β β β β β β
β β’ UI Components β β β’ AI Proxy β β β’ GitHub/GitLab β
β β’ State Mgmt β β β’ Security Layer β β β’ Google Gemini β
β β’ Git Client β β β’ CORS Handling β β β’ OpenRouter β
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
- User Input β High-level goal, task modification, or search query
- AI Processing β Backend calls Gemini AI for intelligent planning
- GitHub/GitLab Storage β Generated tasks saved as markdown files
- Search & Retrieval β Real-time search across tasks with scope control
- Real-Time UI β Frontend displays interactive markdown with live updates
am-todos/
βββ src/
β βββ components/ # React components
β β βββ TodoEditor.tsx # Main task editor
β β βββ TodoSidebar.tsx # Task list navigation with search
β β βββ AIChat.tsx # AI chat interface
β β βββ ...
β βββ services/ # API integrations
β β βββ githubService.ts # GitHub API client
β β βββ searchService.ts # Real-time search functionality
β β βββ aiService.ts # Gemini AI client
β βββ utils/ # Helper functions
βββ server/ # Express backend
β βββ server.js # Main server file
β βββ package.json # Backend dependencies
βββ public/ # Static assets
βββ package.json # Frontend dependencies
π©βπ» Development Guide: See CLAUDE.md for complete development documentation
π§ͺ Testing Guide: See TESTING.md for test coverage and validation
π Deployment Guide: See DEPLOYMENT.md for production deployment
# Start development environment
cd server && node server.js & # Backend
npm start # Frontendnpm start # Development server
npm run build # Production build
npm run test:basic # Run feature validation tests
./hack/restart-dev.sh # Restart both servers (rarely needed)- AI API Keys: Stored in browser localStorage, proxied through backend for security
- Multi-Provider Support: Choose between Google Gemini or OpenRouter with 400+ models
- GitHub Access: Fine-grained Personal Access Tokens with repository-specific permissions
- Container Security: Non-root user, minimal Alpine Linux base, security scanning
- CORS: Properly configured for production deployment
- Data Ownership: All data stored in your GitHub repository under your control
- No Server-Side Secrets: All configuration done through secure web UI
- π features/implementation-evidence.md - Detailed feature list with implementation evidence
- π features/concept-and-architecture.md - Architecture, vision, and design principles
- π©βπ» CLAUDE.md - Complete development guide and workflows
- π§ͺ TESTING.md - Test coverage, validation, and CI/CD
- π DEPLOYMENT.md - Production deployment with Docker and Cloud Run
- π¨ STYLE_GUIDE.md - UI/UX standards and component patterns
π Complete Usage Guide: See features/concept-and-architecture.md for detailed usage scenarios
- Create task: "Plan weekend camping trip"
- AI generates: Detailed checklist with gear, reservations, route planning
- Search & organize: Use Ctrl/Cmd+F to search tasks, toggle folder/repo scope
- Track progress: Use checkboxes to track completion
- Archive: Move completed tasks to archive when done
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Follow the development setup in
CLAUDE.md - Run tests:
npm test - Commit changes:
git commit -m 'feat: add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open a Pull Request
This project is open source and available under the MIT License.
Made with β€οΈ using React, TypeScript, TailwindCSS, Google Gemini AI, and Claude Code
Transform your repository into an intelligent task management system today!