Set up
Runs on your computer. Pick your agent and operating system.
This project does not publish an install method we can turn into a config. Follow the README instead.
README
synced Oct 26, 2026Sharpei
A focused, local-first TODO application inspired by MyTinyTodo.
Sharpei runs entirely on your machine with no cloud dependencies, stores data in SQLite for easy AI/agent access, and provides a clean, responsive UI for managing tasks, and an MCP server for direct AI agent manipulation.
Features
- Local-first - Runs on localhost, no internet required
- SQLite storage - Simple, portable database that AI tools can read
- Calendar View - Interactive monthly grid to visualize deadlines
- Bulk Actions - Multi-select tasks for group updates (move, priority, delete)
- Task Recurrence - Automatically repeating tasks (daily, weekly, custom)
- Smart Categories - Save search queries as persistent sidebar items
- Advanced Search - Filter by status (
is:overdue), priority, and more - PWA Support - Install as a standalone desktop app with offline caching
- Data Portability - JSON export/import and automated daily backups
- Markdown notes - Capture details about your tasks in markdown syntax
- Subtasks - Break down tasks into smaller items
- Hashtags - Tag tasks for easy filtering
- Quick-add syntax - Rapidly create tasks with
!priority #tags @dates *recur >Category - MCP server - AI assistant integration via Model Context Protocol
- Dark Mode - Full support for light and dark themes
Quick Start
# Clone the repo
git clone https://github.com/bnaylor/sharpei.git
cd sharpei
# Create virtual environment
python3 -m venv venv
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Run the app
python sharpei.py
The app opens automatically at http://127.0.0.1:8000
Remote Hosting
Sharpei is designed for local-first use, but you can also host the backend on a remote server and connect to it from any browser or PWA. Local-first remains the default.
Running the Backend for Remote Access
To allow remote connections, start the backend with the --host and --api-key arguments:
python sharpei.py --host 0.0.0.0 --api-key YOUR_SECRET_KEY
| Argument | Description | Default |
|---|---|---|
--host | Interface to bind to (0.0.0.0 for all) | 127.0.0.1 |
--port | Port number to listen on | 8000 |
--api-key | Secret key required for API access | None |
--ssl-cert | Path to SSL certificate (for HTTPS) | None |
--ssl-key | Path to SSL key (for HTTPS) | None |
--no-browser | Skip opening the browser on startup | false |
Connecting from the UI
- Open the Sharpei UI.
- Click the Settings (gear icon) in the top right corner.
- Under Remote Backend:
- Enter your Remote API URL (e.g.,
https://sharpei.example.com:8000). - Enter your API Key.
- Enter your Remote API URL (e.g.,
- Click Save Settings.
The UI will now use the remote backend for all operations. This configuration is saved in your browser's local storage.
Quick-Add Syntax
Create tasks rapidly from the input field:
Call dentist @tomorrow !high #health
Submit timesheet *weekly @friday >Work
Water plants *3d @tomorrow
| Element | Syntax | Examples |
|---|---|---|
| Priority | !high !low | !high, !h, !low, !l |
| Hashtags | #tag | #work #urgent |
| Due date | @date | @today, @monday, @+3d, @2025-02-15 |
| Recurrence | *pattern | *daily, *weekly, *monthly, *3d, *2w |
| Category | >name | >Work, >Personal |
See doc/quick-add.md for full documentation.
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
Ctrl+Shift+A | Archive completed tasks |
Ctrl+Shift+H | Toggle archived tasks visibility |
Ctrl+Shift+D | Toggle details view |
MCP Server
Sharpei includes an MCP server for AI assistant integration:
python mcp_server.py
See doc/mcp.md for full documentation.
Testing
# Run all tests (125 total)
pytest
Documentation
- Quick-Add Syntax
- Search & Smart Filters
- Calendar View
- Bulk Actions
- Task Dependencies
- Data Portability & Backups
- MCP Server
- Testing
Credits
Built with assistance from Gemini 3 and Claude Opus 4.5.
License
Apache 2.0 License - see LICENSE for details.