Receber por email
← Voltar para o catálogo

brain-join

Join an existing brain sync network from another machine. Pulls the consolidated brain and merges with any local state.

66estrelas
Atualizado há 4 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add toroleapinc/claude-brain

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/brain-join/svg)](https://www.skillteca.com.br/skills/brain-join)

Skills relacionadas

Ver todas de Desenvolvimento →

Alerta por categoria

Receba novas skills de Desenvolvimento toda segunda

1 email curto, só com as skills novas de Desenvolvimento. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

The user wants to join an existing brain network from this machine.

The Git remote URL is provided as: $ARGUMENTS

Steps

  1. Check dependencies (git, jq or python3).
  1. Validate the remote URL for security:

``bash source "${CLAUDE_PLUGIN_ROOT}/scripts/common.sh" validate_remote_url "$ARGUMENTS" `` If the URL appears to point to a PUBLIC repo, warn the user and ask for confirmation.

  1. Show current local brain inventory:

`` bash "${CLAUDE_PLUGIN_ROOT}/scripts/status.sh" ``

  1. Show security notice:
  2. "Joining a brain network means:"
  3. " - Your local brain data will be PUSHED to the remote repository"
  4. " - Remote brain data (skills, agents, rules) will be IMPORTED to your machine"
  5. " - Auto-sync will run on every Claude Code session start/end"
  6. ""
  7. "Only join brain networks you trust — imported skills and agents execute with Claude's permissions."
  1. Clone the brain repo:

``bash git clone "$ARGUMENTS" ~/.claude/brain-repo ` If the directory exists, do git -C ~/.claude/brain-repo pull origin main` instead.

  1. Check if the network uses encryption:

```bash # Check for recipients file indicating encryption if [ -f ~/.claude/brain-repo/meta/recipients.txt ]; then echo "This brain network uses age encryption."

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

echo "" echo "You need to set up age encryption to join this network." echo "Options:" echo " 1. Generate a new age keypair for this machine" echo " 2. Use an existing age private key" echo "" read -p "Generate new keypair? (y/n): " -r generate_key

if [ "$generate_key" = "y" ] || [ "$generate_key" = "Y" ]; then # Generate new keypair source "${CLAUDE_PLUGIN_ROOT}/scripts/common.sh" IDENTITY_FILE="${HOME}/.claude/brain-age-key.txt" age-keygen -o "$IDENTITY_FILE" chmod 600 "$IDENTITY_FILE"

# Extract public key PUBLIC_KEY=$(grep "# public key:" "$IDENTITY_FILE" | cut -d' ' -f4) echo "" echo "Generated age keypair. Your public key is:" echo "$PUBLIC_KEY" echo "" echo "IMPORTANT: Share this public key with the brain network owner" echo "so they can add it to the recipients file." echo "" echo "The network owner should run:" echo " echo '$PUBLIC_KEY' >> ~/.claude/brain-repo/meta/recipients.txt" echo " git add meta/recipients.txt && git commit -m 'Add machine: $(hostname)' && git push" echo "" read -p "Press Enter when the network owner has added your public key..."

# Pull to get updated recipients git -C ~/.claude/brain-repo pull origin main

REGISTER_FLAGS="--encrypt" else echo "Please place your existing age private key at: ~/.claude/brain-age-key.txt" echo "Make sure it's readable only by you: chmod 600 ~/.claude/brain-age-key.txt" read -p "Press Enter when ready..."

if [ ! -f ~/.claude/brain-age-key.txt ]; then echo "ERROR: Age private key not found at ~/.claude/brain-age-key.txt" exit 1 fi

REGISTER_FLAGS="--encrypt" fi else echo "This brain network does not use encryption." REGISTER_FLAGS="" fi ```

  1. Register this machine:

``bash if [ -n "$REGISTER_FLAGS" ]; then bash "${CLAUDE_PLUGIN_ROOT}/scripts/register-machine.sh" "$ARGUMENTS" $REGISTER_FLAGS else bash "${CLAUDE_PLUGIN_ROOT}/scripts/register-machine.sh" "$ARGUMENTS" fi ``

  1. Show what's in the consolidated brain vs what's local. Run export first:

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

  1. Ask the user how to handle existing local data:
  2. Merge (recommended): Merge local brain into consolidated
  3. Overwrite: Replace local with consolidated brain
  4. Keep local: Keep local as-is, only add new items from consolidated
  1. Based on choice:
  2. Merge: Run merge-structured.sh then merge-semantic.sh between local snapshot and consolidated
  3. Overwrite: Run import.sh directly with consolidated brain
  4. Keep local: Run import.sh but skip files that already exist locally
  1. Push the updated state:

``bash cd ~/.claude/brain-repo git add machines/ consolidated/ meta/ git commit -m "Join: $(hostname) joined brain network" git push origin main ``

  1. Confirm success:
  2. Show how many machines are now in the network
  3. Show what was imported/merged
  4. Note: "Auto-sync is now enabled. Your brain syncs on every Claude Code session start/end."
  5. Reminder: "A backup of your pre-join brain state was saved to ~/.claude/brain-backups/"
Compartilhar X LinkedIn