Small, friendly CLI helpers that make Claude Code sessions easier. Not a framework—just a couple of shell toys that preserve flow state.

The Problem

Claude Code’s default workflow creates friction:

  1. Session resumption is backwards — Must know you want to resume before launching. Type claude and you’ve already started new.
  2. Cognitive load of UUIDs — Remember session IDs? Find them in files? Copy-paste?
  3. Context bloat — Unnecessary MCP servers and agents eat context window
  4. Configuration fragmentation — Manual management of which agents/profiles are active

Every moment fumbling with this is a moment pulled out of flow state.

The Solution

ccup — Session Launcher

ccup        # Launch from current project
ccup -a     # Select from all onboarded projects

What it does:

  1. Shows recent sessions (smart filtered, no orphans)
  2. Displays git branch, date, last message preview
  3. Lets you pick MCP profile (or use project default)
  4. Asks about yolo mode
  5. Launches with all correct flags

Inverts the default: See sessions before launching, not after with /resume.

agentenv — Agent Profile Manager

agentenv demo        # Activate demo profile
agentenv --clear     # Remove all agents
agentenv --only pong # Single agent

Uses symlinks as single source of truth. Agent files live in agents.env/, active agents are pointers in agents/.

Design Philosophy

“Developer experience is the accumulation of small details.”

Why Pure Bash?

  • Zero-cost abstraction — No interpreter startup, no node_modules
  • Ecosystem fit — Native language of the shell
  • Simple distribution — Single files, curl-installable

Why Single-Key Input?

read -n 1 eliminates Enter keypresses. Seems trivial, but compounded over hundreds of uses, it makes the interface feel like direct manipulation rather than Q&A.

  • Atomic switching — Clear all, create new in one operation
  • No data duplication — Edit once, effective everywhere
  • Transparent state — Filesystem is the database

Technical Decisions

ChoiceWhy
jq dependencyRobust JSON parsing vs brittle grep/sed
fzf optionalSuperior UX for those who have it, fallback for others
Session filteringOnly show meaningful conversations, not zombies
DIM stylingVisual hierarchy without clutter
Green checkmarksConstant confirmation builds confidence

Workflow Transformation

Before: Session-centric thinking. “What was that UUID?”

After: Project-centric thinking. “I’m working on project-x; pick up where I left off.”

The claude CLI feels less like a command-line tool and more like an integrated part of the project environment.

Ecosystem Position

cc-toys is a power-user wrapper that sits on top of claude. Doesn’t replace the core—orchestrates it.

Why isn’t this built-in? Official tools must remain unopinionated to serve everyone. Core CLIs provide stable primitives; community builds workflow-specific tools on top.

Healthy division of labor.

Key Insight

“True productivity isn’t just about raw power, but about the seamless and elegant application of that power.”

The deeper lesson: Great tools aren’t about what they can do—they’re about how they feel to use. Remove tiny frictions—an extra keystroke, a moment of confusion, a manual file operation—and you transform functional into joyful.

The CLAUDE.md Innovation

The project’s CLAUDE.md is a blueprint for AI collaboration—documenting design decisions, testing strategies, and enhancement plans for the AI itself. A revolutionary concept: maintain a guidance document for your AI collaborator.