an opinionated approach to productive development with Claude Code
JavaScript
1,546
268 commits
updated Dec 17, 2025



latest release - v0.3.0
it's basically autopilot
major highlights:
sessions command replaces multiple slash commandsSee CHANGELOG.md for complete details.
You install cc-sessions into a repo from the project root:
cd ~/my-git-repo && [npx|pipx run] cc-sessions
There are Python and Node packages - use whichever you have:
# Navigate to the repo you want to
# use cc-sessions in, then...
pipx run cc-sessions
# Navigate to the repo you want to
# use cc-sessions in, then...
npx cc-sessions
The installer sets up:
sessions/hooks/ for DAIC enforcementsessions/api/ for state/config managementsessions/protocols/ for workflow automation.claude/agents/ for heavy operations.claude/commandssessions/sessions-state.jsonsessions/sessions-config.json.gitignore entries for runtime filesThe system automatically preserves your work:
.claude/.backup-YYYYMMDD-HHMMSS/You can select whether to take the interactive tutorial at the end of the installer. Its pretty quick and it will fully onboard you if you're new, using cc-sessions to teach you cc-sessions.
The system teaches itself through index-based progression, then cleans up its own onboarding files on graduation.
After installation (and, optionally, kickstart), use trigger phrases to control workflows:
You: "mek: add user authentication"
Claude: [Creates task with interactive prompts]
You: "start^: @sessions/tasks/h-implement-user-auth.md"
Claude: [Loads context, proposes implementation plan with specific todos]
You: "yert"
Claude: [Implements only the approved todos]
You: "finito"
Claude: [Completes task: commits, merges, cleans up]
These trigger phrases are the defaults. Add any trigger phrases you like:
# See current triggers
/sessions config triggers list
# Add your own phrase to any category
/sessions config triggers add go lets do this
# Categories: go, no, create, start, complete, compact
# Slash command API syntax: /sessions [subsystem] [command] [arguments]
# Context-aware help on failed commands - fail away
Check sessions/sessions-config.json to see all configuration options.
Without additional scaffolding, you are often manually adding files to context for 20% of the context window and being perennially terrified of having to compact context.
The list of things you have to remember can get quite large:
The cognitive overhead balloons quickly.
Tasks don't survive restarts. Close Claude Code, reopen it, and you're explaining everything from scratch. No confidence that work will continue cleanly and no structure to how to handle working across context windows.
You discover problems faster than you can solve them. Without a standardized, friction-free way to capture tasks, these insights vanish.
When context does get compacted automatically, it doesn't preserve enough detail to inspire confidence.
Most have a CLAUDE.md file stuffed with behavioral rules, some of which are simple where others are complex branching conditional logic.
LLMs are terrible at following long instruction lists throughout an entire conversation. The guidance degrades as the conversation progresses.
Git workflow adds constant friction: creating branches, crafting commit messages, merging when complete, pushing to remote. More cognitive overhead.
So, cc-sessions fixes all of this.
Claude earns the right to write code. By default, Edit, Write, and MultiEdit tools are completely blocked. Before Claude can touch your codebase, he has to discuss his approach, explain his reasoning, and propose specific todos you explicitly approve with trigger phrases like "go ahead" or "make it so" (fully customizable).
Once you approve the plan, Claude loads those exact todos and can only work on what you agreed to. Try to change the plan mid-stream? The system detects it and throws him back to discussion mode. No scope creep. No surprise rewrites. Just the work you approved.
Tasks are markdown files with frontmatter that tracks status, branches, and success criteria. The system automatically creates matching git branches, enforces branch discipline (no committing to wrong branches or editing files off branch), and loads complete context when you restart a task days later.
Directory-based tasks support complex multi-phase work with subtask workflows. File-based tasks handle focused objectives. Task indexes let you filter by service area. Everything persists through session restarts.
Five specialized agents run in separate context windows to handle operations that would otherwise burn your main thread:
Each agent receives the full conversation transcript and returns structured results to your main session.
Pre-built protocol templates guide task creation, startup, completion, and context compaction. They adapt automatically based on your configuration—no manual decisions about submodules, commit styles, or git workflows. The protocols just know what you prefer and act accordingly.
All protocols use structured output formats ([PROPOSAL], [STATUS], [PLAN]) so you always know when Claude needs your input.
Unified sessions command provides programmatic access to state, configuration, and task management. Slash commands (/sessions) give you quick access through Claude Code's command palette.
Configure trigger phrases, manage git preferences, toggle features, inspect state—everything through a clean API with JSON output support for scripting.
First install drops you into interactive onboarding with two modes: Full (15-30 min walkthrough of every feature with hands-on exercises) or Subagents-only (5 min agent customization crash course). You learn by doing, not by reading docs.
The system teaches itself, then cleans up after graduation.
Every behavior is configurable through sessions/sessions-config.json. Customize trigger phrases, blocked tools, git workflows (commit styles, auto-merge, auto-push), environment settings, feature toggles. The system respects your preferences automatically—protocols adapt, enforcement rules adjust, everything just works your way.
The system backs up your work before updates, preserves task files and agent customizations during reinstalls, and maintains state across session restarts. Your .gitignore gets configured automatically to keep runtime state out of version control. Everything persists, nothing gets lost.
We mostly inline contributions unless your PR is exceptionally solid - there are a lot of concerns to manage when updating this repo.
If your suggestion or PR is good and used, we'll credit you even if inlined.
MIT License. It's a public good - use it, fork it, make it better.
See the LICENSE file for the legal details.
32,157 followers · starred Aug 2025
456 followers · starred Sep 2025
683 followers · starred Aug 2025
4,880 followers · starred Aug 2025
an opinionated approach to productive development with Claude Code
JavaScript
1,546
268 commits
updated Dec 17, 2025



latest release - v0.3.0
it's basically autopilot
major highlights:
sessions command replaces multiple slash commandsSee CHANGELOG.md for complete details.
You install cc-sessions into a repo from the project root:
cd ~/my-git-repo && [npx|pipx run] cc-sessions
There are Python and Node packages - use whichever you have:
# Navigate to the repo you want to
# use cc-sessions in, then...
pipx run cc-sessions
# Navigate to the repo you want to
# use cc-sessions in, then...
npx cc-sessions
The installer sets up:
sessions/hooks/ for DAIC enforcementsessions/api/ for state/config managementsessions/protocols/ for workflow automation.claude/agents/ for heavy operations.claude/commandssessions/sessions-state.jsonsessions/sessions-config.json.gitignore entries for runtime filesThe system automatically preserves your work:
.claude/.backup-YYYYMMDD-HHMMSS/You can select whether to take the interactive tutorial at the end of the installer. Its pretty quick and it will fully onboard you if you're new, using cc-sessions to teach you cc-sessions.
The system teaches itself through index-based progression, then cleans up its own onboarding files on graduation.
After installation (and, optionally, kickstart), use trigger phrases to control workflows:
You: "mek: add user authentication"
Claude: [Creates task with interactive prompts]
You: "start^: @sessions/tasks/h-implement-user-auth.md"
Claude: [Loads context, proposes implementation plan with specific todos]
You: "yert"
Claude: [Implements only the approved todos]
You: "finito"
Claude: [Completes task: commits, merges, cleans up]
These trigger phrases are the defaults. Add any trigger phrases you like:
# See current triggers
/sessions config triggers list
# Add your own phrase to any category
/sessions config triggers add go lets do this
# Categories: go, no, create, start, complete, compact
# Slash command API syntax: /sessions [subsystem] [command] [arguments]
# Context-aware help on failed commands - fail away
Check sessions/sessions-config.json to see all configuration options.
Without additional scaffolding, you are often manually adding files to context for 20% of the context window and being perennially terrified of having to compact context.
The list of things you have to remember can get quite large:
The cognitive overhead balloons quickly.
Tasks don't survive restarts. Close Claude Code, reopen it, and you're explaining everything from scratch. No confidence that work will continue cleanly and no structure to how to handle working across context windows.
You discover problems faster than you can solve them. Without a standardized, friction-free way to capture tasks, these insights vanish.
When context does get compacted automatically, it doesn't preserve enough detail to inspire confidence.
Most have a CLAUDE.md file stuffed with behavioral rules, some of which are simple where others are complex branching conditional logic.
LLMs are terrible at following long instruction lists throughout an entire conversation. The guidance degrades as the conversation progresses.
Git workflow adds constant friction: creating branches, crafting commit messages, merging when complete, pushing to remote. More cognitive overhead.
So, cc-sessions fixes all of this.
Claude earns the right to write code. By default, Edit, Write, and MultiEdit tools are completely blocked. Before Claude can touch your codebase, he has to discuss his approach, explain his reasoning, and propose specific todos you explicitly approve with trigger phrases like "go ahead" or "make it so" (fully customizable).
Once you approve the plan, Claude loads those exact todos and can only work on what you agreed to. Try to change the plan mid-stream? The system detects it and throws him back to discussion mode. No scope creep. No surprise rewrites. Just the work you approved.
Tasks are markdown files with frontmatter that tracks status, branches, and success criteria. The system automatically creates matching git branches, enforces branch discipline (no committing to wrong branches or editing files off branch), and loads complete context when you restart a task days later.
Directory-based tasks support complex multi-phase work with subtask workflows. File-based tasks handle focused objectives. Task indexes let you filter by service area. Everything persists through session restarts.
Five specialized agents run in separate context windows to handle operations that would otherwise burn your main thread:
Each agent receives the full conversation transcript and returns structured results to your main session.
Pre-built protocol templates guide task creation, startup, completion, and context compaction. They adapt automatically based on your configuration—no manual decisions about submodules, commit styles, or git workflows. The protocols just know what you prefer and act accordingly.
All protocols use structured output formats ([PROPOSAL], [STATUS], [PLAN]) so you always know when Claude needs your input.
Unified sessions command provides programmatic access to state, configuration, and task management. Slash commands (/sessions) give you quick access through Claude Code's command palette.
Configure trigger phrases, manage git preferences, toggle features, inspect state—everything through a clean API with JSON output support for scripting.
First install drops you into interactive onboarding with two modes: Full (15-30 min walkthrough of every feature with hands-on exercises) or Subagents-only (5 min agent customization crash course). You learn by doing, not by reading docs.
The system teaches itself, then cleans up after graduation.
Every behavior is configurable through sessions/sessions-config.json. Customize trigger phrases, blocked tools, git workflows (commit styles, auto-merge, auto-push), environment settings, feature toggles. The system respects your preferences automatically—protocols adapt, enforcement rules adjust, everything just works your way.
The system backs up your work before updates, preserves task files and agent customizations during reinstalls, and maintains state across session restarts. Your .gitignore gets configured automatically to keep runtime state out of version control. Everything persists, nothing gets lost.
We mostly inline contributions unless your PR is exceptionally solid - there are a lot of concerns to manage when updating this repo.
If your suggestion or PR is good and used, we'll credit you even if inlined.
MIT License. It's a public good - use it, fork it, make it better.
See the LICENSE file for the legal details.
32,157 followers · starred Aug 2025
456 followers · starred Sep 2025
683 followers · starred Aug 2025
4,880 followers · starred Aug 2025