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
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
flowstate_cli-1.3.tar.gz
(23.0 kB
view details)
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
|