Skip to content

Repository files navigation

Tasktop

Centralized task management for account teams and solution architects. Aggregate tasks from meeting notes, Slack, and Google Docs, then feed each task to your preferred AI coding agent (e.g. Cursor) via deeplink or copy-prompt.

Features

  • Task list: Single list with status (todo / in progress / sent to agent / done), filter by All / To do / Done
  • Open in Cursor: Builds a Cursor prompt deeplink so the task opens in Cursor with the prompt pre-filled
  • Copy prompt: Copy a well-formed prompt for pasting into GitHub Copilot, Windsurf, or any other agent
  • Meeting notes: Paste notes from customer calls; AI extracts action items as tasks (OpenAI optional; fallback to simple extraction)
  • From Slack: Paste a Slack message URL to create a task linked to that conversation
  • Google Docs: Sign in with Google, list your Docs, and extract tasks from a doc’s content (requires Google OAuth + OpenAI for extraction)

Quick start (build and load the site)

From the project root:

# One-time setup: install deps and create the SQLite DB
npm run setup

# Build (optional; use for production)
npm run build

# Run the app
npm run dev

Then open http://localhost:3000. The app will load with a default dev config (task list, add task, meeting notes, Slack URL, Cursor/Copy prompt). Google Docs and AI extraction need extra env vars below.

Setup (environment)

A .env.local with dev defaults is included so the site runs without changes. To enable optional features:

Variable Required Purpose
NEXTAUTH_URL Yes (dev: http://localhost:3000) NextAuth base URL
NEXTAUTH_SECRET Yes Any random string (e.g. openssl rand -base64 32)
GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET For Google Docs tab Create in Google Cloud Console, enable Drive API
OPENAI_API_KEY For AI extraction Meeting notes and Google Docs use simple extraction if unset
  • Development: Copy .env.example to .env.local and set at least NEXTAUTH_SECRET if you replace the default.
  • Production: Set NEXTAUTH_URL to your public URL and use a strong NEXTAUTH_SECRET.

Tech

  • Next.js 14 (App Router), React, Tailwind
  • SQLite + Drizzle ORM for the task store
  • NextAuth with Google (Drive read) for Google Docs
  • OpenAI (gpt-4o-mini) for extracting tasks from text when OPENAI_API_KEY is set

Use cases

Use case How
Central task list One place for all tasks from meetings, Slack, and Google Docs.
Meeting notes → tasks Paste notes from customer calls; AI extracts action items (or add manually).
Slack → tasks Paste a Slack message URL to create a task linked to that thread.
Google Docs → tasks Sign in with Google, pick a Doc, Extract tasks to create tasks from its content.
Feed tasks to AI agents Open in Cursor (deeplink) or Copy prompt for Copilot, Windsurf, or CLI.

How to use

  1. Add tasks — Use Add task (manual), Meeting notes (paste + extract), From Slack (paste message URL), or Google Docs (sign in, pick doc, extract).
  2. Manage — Open Task list to filter (All / To do / Done), mark tasks done, and open source links.
  3. Hand off to AI — For a task, click Open in Cursor to open Cursor with the prompt, or Copy prompt to paste into another tool.

Google Docs sign-in

To use the Google Docs tab you must configure Google OAuth:

  1. In Google Cloud Console, create a project (or use an existing one).
  2. Enable the Google Drive API (we use it to list and export Docs).
  3. Go to APIs & Services → Credentials and create OAuth 2.0 Client ID (application type: Web application).
  4. Under Authorized redirect URIs add: http://localhost:3000/api/auth/callback/google (use your production URL when deploying).
  5. Copy the Client ID and Client Secret into .env.local:
    GOOGLE_CLIENT_ID=...apps.googleusercontent.com
    GOOGLE_CLIENT_SECRET=...
  6. Restart the dev server (npm run dev). Then open the Google Docs tab and click Sign in with Google.

About

AI agents task management

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages