taskair-cli
v1.0.13
Published
Space-themed, privacy-first task management CLI with E2E encryption
Maintainers
Readme
TaskAir CLI ✦
Space-themed, privacy-first task management CLI with zero-knowledge, client-side end-to-end encryption.
TaskAir CLI is the developer's command-line interface for the TaskAir ecosystem. It features a stunning space-themed terminal UI built with Ink and React, zero-knowledge client-side E2E encryption using AES-256-GCM, and seamless cloud synchronization with Supabase.
🚀 Installation
Install the package globally via npm:
npm install -g taskair-cli🪐 Setup & Configuration
Before managing your tasks, you need to configure the CLI to point to your TaskAir Web server and authenticate.
1. Configure & Authenticate
Run the configuration command and follow the prompt to open the browser for authentication:
taskair configAfter running the command, a web browser window will open automatically. Complete your sign-in or enter your Master Password on the website to link your CLI terminal. The API URL is automatically preconfigured to point to our production endpoint (https://api-taskair.vercel.app).
2. Verify Session
You can check your configuration and login status at any time:
taskair whoami⌨️ Command Reference
TaskAir CLI provides a complete set of commands to manage, filter, analyze, and sync your tasks.
1. Add a Task
Create a new task with options for priority, due date, and tags.
taskair add "Launch satellite orbit phase 1" --priority high --tags "space,work" --due "2026-07-01"- Alias:
-a - Options:
-p, --priority <level>: Priority level (high|medium|low, default:medium).-d, --due <datetime>: Due date in ISO 8601 orYYYY-MM-DDformat.-t, --tags <tags>: Comma-separated list of tags.
2. List Tasks
View your tasks in a table or list format with optional status and priority filtering.
# List all pending high priority tasks
taskair list --status pending --priority high
# List tasks in JSON format for scripting/exporting
taskair list --format json- Alias:
-l - Options:
-s, --status <status>: Filter by status (pending|in_progress|completed|all, default:all).-p, --priority <priority>: Filter by priority (high|medium|low|all, default:all).-t, --tags <tags>: Filter by comma-separated tags.-f, --format <format>: Output format (table|compact|json, default:table).
3. Mark a Task as Completed
Complete a task and optionally add a completion note.
taskair done <task-id-prefix> --note "Orbit established successfully."- Alias:
-d - Options:
-n, --note <note>: Optional completion note.
4. Edit a Task
Modify any field of an existing task using its ID.
taskair edit <task-id-prefix> --priority high --tags "milestone,space"- Alias:
-e - Options:
--description <text>: Set a new description.--priority <level>: Change priority (high|medium|low).--status <status>: Update status (pending|in_progress|completed).--due <datetime>: Set or update due date.--tags <tags>: Overwrite tags with a comma-separated list.--note <note>: Add/update completion note.
5. Delete a Task
Remove a task from your database. By default, this will ask for confirmation unless the --force flag is passed.
taskair remove <task-id-prefix> --force- Alias:
-r - Options:
--force: Skip confirmation prompt.
6. Synchronize with Cloud
Push local offline changes and pull updates from your Supabase cloud database.
taskair sync --password <your-master-password>- Options:
--password <password>: The master password to encrypt/decrypt task bundles.--dry-run: View what would be synced without modifying local or remote data.
7. View Analytics & Stats
See task counts, priority breakdowns, and completion rate progress bars directly in your terminal:
taskair stats8. Export Tasks
Export your entire task database to JSON, CSV, or Markdown format.
taskair export --format csv --output ./tasks_backup.csv- Options:
-f, --format <format>: Export format (json|csv|markdown, default:json).-o, --output <file>: Target file path. If omitted, outputs to stdout.
9. Log Out
End your session and clear local access tokens:
taskair logout🔒 Security Architecture
TaskAir is built on zero-knowledge architecture:
- Local Storage: Tasks are stored locally on your machine.
- Client-side Encryption: During sync, your tasks are serialized into a JSON bundle, encrypted using AES-256-GCM with a key derived from your Master Password via PBKDF2.
- Encrypted Sync: The encrypted ciphertext along with a SHA-256 checksum is uploaded to the Supabase Cloud.
- Zero Server Knowledge: Neither Supabase nor the web application server ever holds your master password or the encryption key. Your data remains completely private and secure.
📄 License
This project is licensed under the MIT License.
