Skip to content
Back to skills

Brain Init

ASecurity

Initialize brain sync network. Creates a Git remote for your brain and exports your current Claude Code state.

  • 84 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 26, 2026
toolsbashgitapisecurity

Works with

  • claude code
  • api
  • mcp

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add toroleapinc/claude-brain --skill brain-init --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Brain Init?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Brain Init
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/toroleapinc-brain-init/badge)](https://www.skillsdirectory.com/skills/toroleapinc-brain-init)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: brain-init
description: Initialize brain sync network. Creates a Git remote for your brain and exports your current Claude Code state.
---


The user wants to initialize their Claude Brain sync network.

Parse arguments:
- If arguments contain "--encrypt", enable encryption
- The first non-flag argument is the Git remote URL

Arguments provided: $ARGUMENTS

## Steps

1. First, check dependencies by running:
   ```
   "${CLAUDE_PLUGIN_ROOT}/scripts/common.sh" && echo "OK"
   ```
   If jq and git are missing, tell the user what to install.

2. Validate the remote URL for security:
   ```bash
   source "${CLAUDE_PLUGIN_ROOT}/scripts/common.sh"
   validate_remote_url "$ARGUMENTS"
   ```
   If the URL is detected as pointing to a PUBLIC repository, STOP and warn the user:
   - "WARNING: This repository appears to be PUBLIC. Your brain data (memory, skills, settings, and potentially sensitive information) will be visible to anyone."
   - "Please use a PRIVATE repository."
   - Ask the user if they want to continue anyway.

3. Show the user their current brain inventory by running:
   ```
   bash "${CLAUDE_PLUGIN_ROOT}/scripts/status.sh"
   ```

4. **IMPORTANT: Show the user a security notice before proceeding:**
   Tell the user:
   - "Brain sync will export the following to the Git remote:"
   - "  - CLAUDE.md, rules, skills, agents (your instructions and workflows)"
   - "  - Auto memory and agent memory (learned patterns from your sessions)"
   - "  - Settings (hooks, permissions — NOT env vars)"
   - "  - MCP server configurations (command/args only — env vars with API keys are STRIPPED)"
   - "  - Keybindings"
   - ""
   - "What is NEVER exported: OAuth tokens, API keys in env vars, ~/.claude.json, session transcripts"
   - ""
   - "Note: Memory files may contain information from your conversations. Review ~/.claude/projects/*/memory/ if concerned."

5. Ask the user to confirm they want to initialize brain sync with the provided remote.

6. Run the initialization sequence:
   ```bash
   # Parse arguments for encryption flag
   ENABLE_ENCRYPTION=false
   REMOTE_URL=""
   for arg in $ARGUMENTS; do
     case "$arg" in
       --encrypt) ENABLE_ENCRYPTION=true ;;
       *) if [ -z "$REMOTE_URL" ]; then REMOTE_URL="$arg"; fi ;;
     esac
   done

   # Create brain repo directory
   mkdir -p ~/.claude/brain-repo

   # Initialize git repo
   cd ~/.claude/brain-repo
   git init
   git remote add origin "$REMOTE_URL" 2>/dev/null || git remote set-url origin "$REMOTE_URL"

   # Create directory structure
   mkdir -p machines consolidated meta

   # Initialize meta files
   echo '{"entries":[]}' > meta/merge-log.json

   # Set up encryption if requested
   if [ "$ENABLE_ENCRYPTION" = "true" ]; then
     echo "Setting up age encryption..."
     
     # Check if age is installed
     if ! command -v age-keygen &>/dev/null; then
       echo "ERROR: age not found. Install it from https://github.com/FiloSottile/age"
       echo "On macOS: brew install age"
       echo "On Ubuntu/Debian: apt install age"
       exit 1
     fi

     # Generate age keypair
     source "${CLAUDE_PLUGIN_ROOT}/scripts/common.sh"
     IDENTITY_FILE="${HOME}/.claude/brain-age-key.txt"
     RECIPIENTS_FILE="${HOME}/.claude/brain-repo/meta/recipients.txt"
     generate_age_keypair "$IDENTITY_FILE" "$RECIPIENTS_FILE"
     
     echo "Age encryption configured:"
     echo "  Private key: $IDENTITY_FILE"
     echo "  Public key: $RECIPIENTS_FILE"
   fi

   # Register this machine (with encryption settings)
   if [ "$ENABLE_ENCRYPTION" = "true" ]; then
     bash "${CLAUDE_PLUGIN_ROOT}/scripts/register-machine.sh" "$REMOTE_URL" --encrypt
   else
     bash "${CLAUDE_PLUGIN_ROOT}/scripts/register-machine.sh" "$REMOTE_URL"
   fi

   # Export initial brain snapshot
   MACHINE_ID=$(cat ~/.claude/brain-config.json | jq -r '.machine_id')
   mkdir -p "machines/${MACHINE_ID}"
   bash "${CLAUDE_PLUGIN_ROOT}/scripts/export.sh" --output "machines/${MACHINE_ID}/brain-snapshot.json"

   # Copy as initial consolidated brain
   cp "machines/${MACHINE_ID}/brain-snapshot.json" consolidated/brain.json

   # Commit and push (specific paths, not -A)
   git add machines/ consolidated/ meta/
   git commit -m "Initialize brain: $(hostname)"
   git branch -M main
   git push -u origin main
   ```

7. Confirm success and show the user:
   - Their machine ID and name
   - The remote URL
   - Instructions: "Install claude-brain on your other machines and run: /brain-join $ARGUMENTS"
   - Reminder: "Auto-sync is enabled. Brain syncs silently on every session start/end."

If any step fails, show the error and suggest fixes (e.g., create the remote repo first on GitHub).

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.