Skip to content

cloud-atlas-ai/superego

Repository files navigation

Superego

A metacognitive advisor for AI coding assistants. Monitors conversations, evaluates the assistant's approach, and provides feedback before finishing.

Supported platforms:

  • Claude Code - Full support via plugin
  • OpenCode - Alpha support via TypeScript plugin (see opencode-plugin/)

What It Does

When you use Claude Code (or OpenCode) with superego enabled:

  1. Session starts - Claude is told superego is active and to take feedback seriously
  2. Claude works - You interact normally with Claude
  3. Before large edits - Superego evaluates proposed changes in context (Edit/Write over 20 lines)
  4. Before Claude finishes - Superego evaluates the full conversation
  5. If concerns found - Claude is blocked and shown the feedback
  6. Claude continues - Incorporates feedback, may ask you clarifying questions
  7. Clean exit - Once addressed (or no concerns), Claude finishes normally

This creates feedback loops where Claude can course-correct both during work and before presenting results.

Quickstart: Claude Code

# 1. Install the plugin
/plugin marketplace add cloud-atlas-ai/superego
/plugin install superego@superego

# 2. Initialize in your project (installs binary if needed)
/superego:init

The /superego:init command detects if the binary is missing and offers to install it via Homebrew or Cargo.

Slash Commands

Command Description
/superego:init Initialize superego for this project (offers binary install if needed)
/superego:status Check if plugin, binary, and project are configured
/superego:enable Enable superego (offers init if not set up)
/superego:disable Temporarily disable for current session
/superego:remove Remove superego from project

Updating

claude plugin marketplace update superego   # Refresh cache
claude plugin update superego@superego      # Update plugin
# Restart Claude Code to apply

Manual binary installation

If you prefer to install the sg binary manually instead of via /superego:init:

# Homebrew (macOS)
brew install cloud-atlas-ai/superego/superego

# Cargo (cross-platform)
cargo install superego

# From source
git clone https://github.com/cloud-atlas-ai/superego.git
cd superego && cargo install --path .

Then run sg init in your project to create .superego/.

Quickstart: OpenCode (Alpha)

OpenCode support is in alpha. It uses a TypeScript plugin that runs entirely within OpenCode—no separate binary needed.

# 1. Download plugin to your project
mkdir -p .opencode/plugin
curl -L -o .opencode/plugin/superego.js \
  https://github.com/cloud-atlas-ai/superego/releases/latest/download/index.js

# 2. Start OpenCode and initialize
opencode
# Ask: "use superego init"

Or install globally:

mkdir -p ~/.config/opencode/plugin
curl -L -o ~/.config/opencode/plugin/superego.js \
  https://github.com/cloud-atlas-ai/superego/releases/latest/download/index.js

See opencode-plugin/README.md for build-from-source instructions and detailed configuration.

What You'll See

When superego has feedback, Claude will continue working instead of stopping, addressing concerns like:

  • Scope drift from the current task
  • Missing error handling or edge cases
  • Approaches that don't align with project conventions
  • Incomplete implementations

If Claude disagrees with non-trivial feedback, it will escalate to you for a decision.

Debugging

Check if hooks are firing

tail -f .superego/hook.log

You'll see:

[15:42:01] Hook fired
[15:42:01] Running: sg evaluate-llm
[15:42:03] Evaluation complete
[15:42:03] Blocking with feedback: Consider error handling...

Check superego state

cat .superego/state.json        # Last evaluation timestamp
cat .superego/feedback          # Pending feedback (if any)
ls .superego/decisions/         # Audit trail of all feedback

Manual evaluation

sg evaluate-llm --transcript-path ~/.claude/projects/<project>/transcript.jsonl

Reset everything

sg reset    # Removes .superego/ directory
sg init     # Fresh start

Migrating from legacy hooks

If you previously used sg init before v0.4.0 (which created .claude/hooks/superego/):

/plugin marketplace add cloud-atlas-ai/superego
/plugin install superego@superego
sg migrate  # Remove legacy hooks

Customization

Edit .superego/prompt.md to customize what superego evaluates:

  • Add project-specific guidelines
  • Adjust strictness
  • Focus on particular concerns

Environment Variables

  • SUPEREGO_DISABLED=1 - Disable superego entirely
  • SUPEREGO_CHANGE_THRESHOLD=N - Lines required to trigger PreToolUse evaluation (default: 20)

How It Works

SessionStart hook
    └── Injects contract: "SUPEREGO ACTIVE: critically evaluate feedback..."

PreToolUse hook (before any tool)
    ├── Checks if periodic eval is due (time-based)
    ├── For Edit/Write: checks change size (lines added/modified)
    ├── If >= threshold (default 20): runs sg evaluate-llm with pending change
    ├── If concerns: returns {"decision":"block","reason":"SUPEREGO FEEDBACK: ..."}
    │   └── Claude sees feedback, reconsiders the change
    └── If small or clean: allows tool execution

Stop hook (when Claude tries to finish)
    ├── Runs sg evaluate-llm
    ├── Reads transcript since last evaluation
    ├── Sends to LLM with superego prompt
    ├── If concerns: returns {"decision":"block","reason":"SUPEREGO FEEDBACK: ..."}
    │   └── Claude sees feedback, continues working
    └── If clean: allows stop

PreCompact hook (before context truncation)
    └── Same as Stop - evaluates before transcript is lost

Commands

sg init              # Initialize superego (creates .superego/)
sg migrate           # Remove legacy hooks (for users upgrading from < v0.4.0)
sg reset             # Remove .superego/ directory
sg evaluate-llm      # Run LLM evaluation (called by hooks)
sg has-feedback      # Check for pending feedback (exit 0=yes, 1=no)
sg get-feedback      # Get and clear pending feedback
sg --version         # Show version

Requirements

  • Claude Code CLI
  • jq (for hook JSON parsing)
  • Rust toolchain (to build from source) or Homebrew (for pre-built binary)

License

Source-available. See LICENSE for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •