cstack

Platforms & APIs 🟡 Quiet lately
9 stars

cstack is a framework for setting up personal AI assistants that handle recurring operational tasks, using Notion as a state store and Claude Cowork for execution. It solves the problem of repetitive follow-ups, status updates, and coordination by turning them into scheduled, stateful loops with human oversight. It is designed for non-technical operators like freelancers, founders, and small teams who want reliable help without managing servers or code.

✨ Key features

  • Stateless architecture: each run starts clean, writes state, exits.
  • Lease-based locking with owner, expiry, and heartbeat.
  • Decision gates for send/spend/delete actions requiring approval.
  • Heartbeat summarizes items needing human decisions.
  • Dispatch control center for status checks and redirects from phone.
  • Human-in-the-loop design with visible, inspectable memory in Notion.

🎯 Use cases

  • Client follow-up assistant tracking conversations and drafting follow-ups.
  • Content pipeline assistant managing ideas, drafts, and publish steps.
  • Weekly ops assistant reviewing recurring tasks and sending decision summaries.
  • Ephemeral assistants for one-time goals like event launches.
  • Seasonal assistants for recurring windows like tax season.

📦 Installation

🧰 Requirements: Requires a free Notion account for state and access to Claude Cowork (claude.ai). No servers or local runtime to maintain.

No installation steps are provided in the README. The setup is done by pasting a prompt into Claude Cowork, which generates the necessary state file, skill file, and scheduled task prompt.

🚀 Usage

Paste the following prompt into Claude Cowork and answer six questions to generate your setup:

You are helping me create a new AI assistant for one recurring part of my work or life.
Ask me these questions one at a time:

1. What domain is this for? (examples: client follow-ups, content planning, hiring pipeline, appointment management)
2. What should this assistant track? List categories.
3. What can it do without asking me?
4. What should it never do?
5. How should it reach me when it needs a decision?
6. How often should it run?

After I answer, create these 3 assets:

1) State file (Notion page):
   - Session Lock:
     - Status: IDLE/IN_PROGRESS
     - Lock Owner: unique run ID
     - Lock Expires At: timestamp
     - Last Heartbeat: timestamp
   - Agent Status section:
     - Last Run
     - Summary
     - Needs Human
   - Optional: Roadmap table for goal tracking:
     - Goal | Metric | Current | Target | Delta
   - One section per category with:
     - Status
     - Current Blocker
     - Next Action
     - Running Log

2) Skill file (markdown rules):
   - Session start: read state + check lock lease
   - Lock rule: if lock is active and not expired, exit; if expir

⚠️ Good to know

Locking is lease-based and not atomic, heartbeat scans all state files each run (scales poorly), and the system depends on the local Claude/Cowork environment being available.

❓ FAQ

Do I need to write code or manage servers?

No. cstack is designed for non-technical operators; you describe workflows in plain English and run everything inside Claude Cowork, with Notion for state.

How does cstack prevent multiple runs from conflicting?

It uses a lease-based lock with an owner, expiry, and heartbeat. If a lock is active and not expired, a new run exits; if expired, it can safely take over.

What happens when an assistant needs a human decision?

The heartbeat assistant checks all state files and sends a summary of items marked 'Needs Human'. You can then use Dispatch to review and issue next actions.

Can I use cstack for real-time tasks like trading or incident response?

No. cstack is designed for recurring operational work that fits a 'read state -> decide -> write state -> wait' pattern, not for continuous monitoring and instant reactions.

📊 Repository

Stars★ 9
Forks🍴 0
Open issues🐛 0
Last commit🕒 Apr 4, 2026
Created📅 Mar 2026

🤖 Overview, features, install steps and FAQ were generated from the project's README on Sep 4, 2026. Always check the original source before running commands.