Command-line productivity tool with task management and Pomodoro timers
Project description
FlowState CLI - Lightweight Hybrid Productivity Tool
A minimal command-line interface for task management and Pomodoro timers that works both online and offline.
✨ Features
- 🔄 Hybrid Mode: Seamlessly switch between cloud sync and offline-first operation
- 📝 Task Management: Create, track, and complete tasks with local SQLite storage
- 🍅 Pomodoro Timer: Built-in timer with background daemon support
- ⚡ Offline-First: Full functionality without internet connection
- 🔒 Local Authentication: No cloud dependency for basic features
- 📊 Simple Sync: Manual sync when you want it
- 💾 Lightweight: Minimal dependencies, SQLite database
🚀 Quick Installation
# Clone and install
git clone <repository-url>
cd flowstatecli
chmod +x install.sh
./install.sh
Or install manually:
pip install -r requirements.txt
pip install -e .
🎯 Operating Modes
FlowState CLI supports three lightweight operating modes:
1. Hybrid Mode (Default)
- Prefers cloud sync when online
- Falls back to local storage when offline
- Best of both worlds
2. Local Mode
- Completely offline operation
- Local SQLite database
- Zero external dependencies
3. Cloud Mode
- Uses cloud API when available
- Requires internet connection
- Traditional online experience
⚙️ Configuration
Quick Setup
# Set operating mode
flowstate mode set hybrid # or 'local' or 'cloud'
# Check current status
flowstate mode status
# For local/hybrid modes, create local account (username-based)
flowstate auth local-register
# For cloud mode, use magic link (email-based)
flowstate auth login your-email@example.com
Mode Management
# Switch modes anytime
flowstate mode set local # Go offline-only
flowstate mode set cloud # Go cloud-only
flowstate mode set hybrid # Best of both
# Manual sync (hybrid/cloud modes)
flowstate sync now
# Check connectivity and auth status
flowstate mode status
Usage
Task Management
# Add a new task
flowstate add "Fix the authentication bug"
# List all tasks
flowstate list
# Start working on a task
flowstate start 1
# Complete a task
flowstate done 1
# Delete a task
flowstate rm 1
Pomodoro Timer
# Start a 25-minute focus session
flowstate pom start
# Take a short break (5 minutes)
flowstate pom break short
# Take a long break (15 minutes)
flowstate pom break long
# Stop current timer
flowstate pom stop
# Show current timer status
flowstate pom status
Flow State Mode
# Block distracting websites
flowstate mode on
# Unblock websites
flowstate mode off
# Show flow state mode status
flowstate mode status
Productivity Stats
# Show your productivity statistics
flowstate stats
Configuration
# Show current settings
flowstate config show
# Update Pomodoro duration to 30 minutes
flowstate config set pomo_duration 30
# Update short break duration to 10 minutes
flowstate config set short_break 10
# Update long break duration to 20 minutes
flowstate config set long_break 20
# Enable notifications
flowstate config set notifications true
# Disable notifications
flowstate config set notifications false
🔄 Data Synchronization
Manual Sync
# Force sync now (hybrid/cloud modes)
flowstate sync now
# Check sync status
flowstate mode status
Conflict Resolution
- Simple approach: Local changes take priority
- Manual sync: Sync only when you want it
- Lightweight: No complex background processes
💾 Local Storage
All data is stored locally in ~/.flowstate/:
config.json- User preferences and mode settingslocal.db- SQLite database with tasks and pomodorosauth.json- Local authentication tokens
📊 Dependencies
Minimal and lightweight:
- Core:
typer,rich,httpx(for cloud features) - Database:
sqlalchemy(with SQLite) - Auth:
bcrypt,PyJWT(for local auth) - Notifications:
plyer(optional system notifications)
Total install size: ~15MB
📊 Authentication Options
Local Authentication
# Register new local account (username-based)
flowstate auth local-register
# Login to existing local account
flowstate auth local-login
# Logout from current session
flowstate auth logout
Cloud Authentication
# Magic link authentication (email-based)
flowstate auth login your-email@example.com
flowstate auth token <your-cli-token>
# Check auth status
flowstate mode status
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file flowstate_cli-1.3.tar.gz.
File metadata
- Download URL: flowstate_cli-1.3.tar.gz
- Upload date:
- Size: 23.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fa3c60516855b6c86d31ac0acaae9685fb552299a90670959989a5c2a3a71e77
|
|
| MD5 |
07266d2f4ddd3f925699064c5c500070
|
|
| BLAKE2b-256 |
84756b00b93e2e3ac45ecb45e1686bf29de2fa5d60d81f4c9e4f1e1dbb2f589e
|
File details
Details for the file flowstate_cli-1.3-py3-none-any.whl.
File metadata
- Download URL: flowstate_cli-1.3-py3-none-any.whl
- Upload date:
- Size: 25.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a94040a31bcb0e6736473a18967426a56529608a1e312898bdb15a548a494be8
|
|
| MD5 |
c1026a5929901160a90025048e5aa821
|
|
| BLAKE2b-256 |
5f1f07bc6fe6a60817588bf8be79e511d40e51d9d8f23de7a9876cc6dd4166fc
|