Skip to content

Repository files navigation

Tasc

Tasc is a modern, snappy, and powerful CLI task manager built for the terminal. It combines the speed of the command line with the interactivity of a Text User Interface (TUI), all backed by a robust SQLite database.

Features

  • Fast & Efficient: Instant startup and operations using SQLite.
  • Fuzzy Search: Powerful FTS5-based fuzzy search to find tasks instantly.
  • Interactive TUI: A beautiful, keyboard-driven UI powered by Bubble Tea for managing tasks.
  • Dependency Management: Create and visualize task dependencies (graphs).
  • AI Integration: Built-in integration with Google Gemini for natural language queries and advice.
  • Bundled Agent Skill: Ships with a reusable SKILL.md bundle for Codex-style agent clients.
  • Smart Scheduling: Track Due Dates and Estimates.
  • Priority System: Dynamic priority scoring to highlight what matters most.
  • Time Tracking: Built-in timer to track how long tasks take.
  • Calendar View: Visualize your schedule in the terminal.

Installation

Homebrew (macOS)

brew install aescoubas/tasc/tasc

Linux Packages (Debian/Ubuntu/Fedora/RHEL)

Download the latest .deb or .rpm release from the Releases Page.

Debian/Ubuntu:

sudo dpkg -i tasc_*.deb

Fedora/RHEL:

sudo rpm -i tasc_*.rpm

Quick Install (Script)

You can also install Tasc quickly using the provided install script:

git clone https://github.com/aescoubas/tasc.git
cd tasc
./install.sh

Build from Source

Prerequisites: Go 1.24 or higher.

Important: Tasc requires the SQLite fts5 extension. You must include the -tags fts5 flag when building.

git clone https://github.com/aescoubas/tasc.git
cd tasc
go build -tags fts5 -o tasc

Move the binary to your path:

sudo mv tasc /usr/local/bin/

Install the bundled Codex skill:

tasc skill install

Build with Nix

The flake keeps the primary package focused on the tasc CLI. The React dashboard remains a separate development build.

# Enter a shell with Go, Node.js, SQLite, GoReleaser, and Nix formatting tools
nix develop

# Build the main CLI package
nix build

# Run tasc directly from the flake
nix run -- --help

# Run the flake checks (CLI build/tests and web build)
nix flake check

If you want to build the standalone web dashboard bundle as well:

nix build .#web

Usage

Basic Commands

  • Add a task:

    tasc add "Finish the report"
    tasc add "Buy milk" --due "tomorrow"
    tasc add "Ship release" --depends-on 12,14
    tasc add "Prepare changelog" --blocks 42
  • Log a completed task:

    tasc log "Fixed that bug"
    tasc log "Meeting with team" --project "Work"
  • List tasks:

    tasc list
    tasc list --sort due      # Sort by due date
    tasc list --sort age      # Sort by task age
    tasc list --sort duration # Sort by time spent
    tasc list --sort score -d # Sort by priority score descending
  • Mark as done:

    tasc done <task_id>
  • Edit a task:

    tasc edit <task_id>        # Opens task in your default $EDITOR
    tasc modify <task_id> "New description" --due "next friday"
    tasc modify <task_id> --depends-on 12 --blocks 42,43
  • Delete a task:

    tasc delete <task_id>
  • Undo last action:

    tasc undo
    tasc undo --yes
  • Renumber tasks: Renumber open task IDs from 0 while preserving current order. Done/deleted tasks are moved to negative IDs so they are clearly distinct:

    tasc renumber
    tasc renumber --yes

Advanced Features

  • Interactive UI: Launch the full TUI:

    tasc ui
  • Search: Fuzzy search your tasks:

    tasc search "milk"
  • Inspect Task: View detailed information about a task:

    tasc show <task_id>
  • Dependencies: Link tasks together:

    tasc dep <blocker_id> <blocked_id>
    tasc add "Write tests" --depends-on 3
    tasc modify 8 --blocks 9,10

    View dependency graph:

    tasc graph
  • AI Assistant: Ask Gemini for help with your tasks:

    tasc ask "How should I prioritize my day?"
  • AI Integration (MCP): Run an MCP server to let AI agents (like Gemini) manage your tasks:

    tasc mcp

    Configuration: To use with Gemini CLI, add this to your config:

    mcpServers:
      tasc:
        command: "tasc"
        args: ["mcp"]
  • Bundled Agent Skill: Tasc ships with a bundled tasc-task-manager skill for clients that support the SKILL.md agent-skills format. The source bundle lives in skills/tasc-task-manager/ and is embedded into the tasc binary so you can install it after any normal tasc install. Install it into the default Codex location (~/.agents/skills):

    tasc skill install --client codex

    Install it into the default Claude Code location (~/.claude/skills):

    tasc skill install --client claude

    Install it into the default Gemini CLI location (~/.gemini/skills) when you want a Gemini-specific copy:

    tasc skill install --client gemini

    If you already installed the Codex/shared copy into ~/.agents/skills, Gemini CLI can discover that shared skill and you should avoid installing a duplicate Gemini-specific copy. Install it into another compatible skills directory manually:

    tasc skill install --dest /path/to/skills

    The bundled skill assumes the client is configured to launch the Tasc MCP server with:

    codex mcp add tasc -- /usr/local/bin/tasc mcp
    claude mcp add -s user tasc -- /usr/local/bin/tasc mcp
    gemini mcp add -s user tasc /usr/local/bin/tasc mcp
  • Calendar: View upcoming tasks on a calendar:

    tasc calendar
  • Time Tracking: Track time spent on tasks:

    tasc start <task_id>       # Start the timer for a task
    tasc stop                  # Stop the currently active timer
  • Statistics: View task counts by status:

    tasc stats
  • Task Refinement: Mark vague tasks that need more clarity:

    tasc vague <task_id>
  • Project Management: Manage project metadata (descriptions, goals):

    tasc project list
    tasc project add "Work" --desc "Professional tasks"
    tasc project show "Work"
  • Data Management: Import from TaskWarrior:

    task export | tasc import-tw

    Backup and Restore your database:

    tasc backup > tasc_backup.json
    tasc restore < tasc_backup.json

    Seed with dummy data (for testing):

    tasc seed

Web Dashboard

Tasc comes with a modern React-based web dashboard for visual planning.

  1. Start the API Server:

    tasc serve
  2. Start the Web UI:

    cd web
    npm install
    npm run dev

    Open http://localhost:5173 to view your Kanban board and task lists.

Distributed Mode (Client-Server)

Tasc can run in a distributed mode where a central server manages the database, and clients connect to it remotely.

1. Start the Server:

You can use the provided start script to build and launch the server:

./start-server.sh

Or manually:

tasc serve --port 8081

2. Configure the Client:

Set the TASC_REMOTE environment variable to point to your server:

export TASC_REMOTE=http://localhost:8081

Now, all tasc commands (add, list, done, etc.) will operate on the remote server instead of the local database.

You can also specify the remote URL per command using the --remote flag:

tasc list --remote http://localhost:8081

Contributing

Contributions are welcome!

  1. Fork the repository.
  2. Create a feature branch (git checkout -b feature/amazing-feature).
  3. Commit your changes (git commit -m 'Add amazing feature').
  4. Push to the branch (git push origin feature/amazing-feature).
  5. Open a Pull Request.

License

This project is licensed under the Mozilla Public License 2.0 (MPL-2.0).

  • Commercial Use: You may use this software in commercial applications (including proprietary ones).
  • Modifications: If you modify the source code of this project, you must make those modifications available under the MPL-2.0 license.

See the LICENSE file for details.

About

tasc is a taskwarrior-inspired task managed tool.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages