mirror of
https://github.com/gnekt/My-Brain-Is-Full-Crew.git
synced 2026-08-26 02:04:43 +00:00
* Fix istall/update scripts * test: capture pre-refactor install snapshot for regression Adds take-snapshot.sh script and the resulting snapshot/ directory, capturing the exact vault state produced by launchme.sh before the framework-agnosticity refactor begins. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Summary: Refactor agents/skills/hooks/mcp in agentic-platform-agnostic templates. refactor: rename source CLAUDE.md → DISPATCHER.md (framework-neutral) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> refactor: convert agent frontmatter from tools: to neutral capabilities: Replace Claude Code-specific `tools:` frontmatter with framework-agnostic `mode: subagent` and `capabilities: [...]` in all 8 agent files. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> refactor: add neutral hook trigger manifests (.hook.yaml) refactor: hooks read neutral JSON schema (args.* instead of tool_input.*) refactor: convert .mcp.json to neutral mcp/servers.yaml Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Implement agentic-platform adapters skeleton. build: add adapters/lib.sh skeleton with vocabulary constants test: bash test runner for adapter helpers Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> build(adapters): parse_frontmatter helper with tests Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> build(adapters): parse_capabilities helper with tests Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> build(adapters): should_include helper with tests Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> build(adapters): parse_hook_yaml helper with tests Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> build(adapters): agent_body helper with tests Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> build(adapters): enumerate_agents and enumerate_hooks helpers Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Implement agentic-platform adapter for Claude Code. build(adapters): claude-code adapter skeleton with capability/event tables build(claude-code): adapter_translate_dispatcher with test build(claude-code): adapter_translate_references with test build(claude-code): adapter_translate_skills with tests build(claude-code): adapter_translate_agents with capability→tools mapping build(claude-code): hook wrapper template (CC native → neutral schema) build(claude-code): adapter_translate_hooks with wrapper generation build(claude-code): adapter_translate_mcp with hand-rolled YAML parser build(claude-code): adapter_finalize and complete adapter_build wiring build: scripts/build.sh dispatches to per-framework adapter Also fix adapter_translate_hooks and adapter_translate_agents to use while-read loops (avoiding word-splitting on paths with spaces) and guard grep calls with || true to survive set -eo pipefail when hooks have no match-tool field. Remove scripts/build.sh from .gitignore. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Refactor install/update scripts to support agentic-platform agnosticity. refactor(lib.sh): generalize install_claude_md → install_dispatcher New signature takes the full destination path instead of just the vault dir, allowing callers to install CLAUDE.md, AGENTS.md, or any dispatcher file to an explicit location. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> feat(launchme): support --framework flag, build dist/ before install Add --framework and --target arg parsing. Run build.sh before installing to populate dist/<framework>/. All install_* calls now read from dist/<framework>/ instead of the raw source dirs. MCP is now handled automatically by the adapter (no interactive prompt). Replaced install_claude_md with install_dispatcher. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> feat(updateme): support --framework flag, build dist/ before update Add --framework and --target arg parsing. Run build.sh before installing to populate dist/<framework>/. All install_* calls now read from dist/<framework>/ instead of raw source dirs. Replaced install_claude_md with install_dispatcher. Also fix set -e compatibility in lib.sh: add || true to all conditional [[ ... ]] && info "..." logging lines so they don't abort the script when VERBOSE_COPY=0. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * test: regression runner diffs dist/claude-code against pre-refactor snapshot - Add tests/regression/run.sh that builds dist/claude-code and compares against snapshot, excluding runtime-only artifacts (.mbifc-manifest, .mcp.json, .claude-plugin/plugin.json) - Fix adapters/lib.sh agent_body: preserve '---' section dividers in body (awk now only skips '---' while still inside frontmatter, fm < 2) - Fix adapters/claude-code/adapter.sh: change 'read' capability to expand to only 'Read', appending 'Glob, Grep' at end of tools list to match snapshot ordering - Update snapshot to reflect intentional refactor changes: hook JSON schema (.args.* instead of .tool_input.*), wrapper scripts, settings.json with wrapper paths, and consistent tool ordering for postman/sorter Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Implement opencode adapter. Co-Authored-By: win0na <winnie@winneon.moe> feat(lib.sh): add install_plugins helper for opencode JS plugins build(adapters): opencode adapter skeleton with capability/event tables build(opencode): adapter_translate_dispatcher (DISPATCHER.md → AGENTS.md) build(opencode): adapter_translate_references and adapter_translate_skills Implements Task 4 and Task 5: - adapter_translate_references: Copies reference markdown files to .opencode/references/ - adapter_translate_skills: Copies skill SKILL.md files to .opencode/skills/<name>/ with exclude filtering Both functions respect framework filtering via should_include(). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> build(opencode): adapter_translate_agents with capability→permission mapping Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> build(opencode): bash-executor template for spawning hook scripts build(opencode): plugin-stub template for mbifc-hooks.js build(opencode): adapter_translate_hooks with JS plugin generation Implements _oc_hook_registry_json and adapter_translate_hooks in the opencode adapter. Copies hook scripts to .opencode/hooks/, generates a single .opencode/plugins/mbifc-hooks.js by inlining bash-executor.js and synthesising a hook registry from *.hook.yaml files. Uses python3 for template substitution to safely handle multi-line JS content. Adds 3 unit tests (copies scripts, registry entries, noop when no hooks dir). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> build(opencode): adapter_translate_mcp with local/remote handling build(opencode): adapter_finalize and complete adapter_build wiring Add adapter_finalize placeholder and wire adapter_translate_mcp into adapter_build; add end-to-end integration test (14/14 pass). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> feat(launchme): branch on --framework for opencode install layout Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> feat(updateme): branch on --framework for opencode install layout Mirror the same case "$FRAMEWORK" block from launchme.sh: framework-specific DIST_COMPONENTS_DIR, VAULT_COMPONENTS_DIR, DISPATCHER_SRC/DST, MCP_SRC/DST, HAS_PLUGINS; conditional install_plugins; conditional install_settings; framework-aware vault-setup check; framework-neutral summary messages. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Fix adapters to follow the same template. fix: restore adapter_build() contract, revert function renames Both adapters now export adapter_build() and adapter_translate_*() as the uniform public contract. scripts/build.sh sources one adapter and calls adapter_build uniformly. Private helpers (_oc_*) and vocabulary tables (cc_capability_to_tools, oc_capability_to_permission, etc.) retain their prefixes. CC regression and OC unit tests all pass. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> fix(tests): restore test_oc_ prefix on adapter_build end-to-end test * Fix agent format in opencode adapter * refactor: rename --framework to --platform across all scripts and tests Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Modify generic name for model tiers Co-Authored-By: win0na <winnie@winneon.moe> refactor: neutral model vocabulary (low/mid/high) in source agents feat(claude-code): cc_model_to_native() maps low/mid/high to haiku/sonnet/opus Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> feat(opencode): update oc_model_to_provider() for low/mid/high vocabulary Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Add gemini-cli adapter Co-Authored-By: win0na <winnie@winneon.moe> build(gemini-cli): adapter skeleton with capability/event/model tables build(gemini-cli): adapter_translate_dispatcher (DISPATCHER.md → GEMINI.md) build(gemini-cli): adapter_translate_references and adapter_translate_skills Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> build(gemini-cli): adapter_translate_agents with capability→tools mapping Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> build(gemini-cli): adapter_translate_hooks with wrapper scripts Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> feat(install): add gemini-cli platform to launchme.sh and updateme.sh Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Implement preserving config merge for opencode. Co-Authored-By: win0na <winnie@winneon.moe> feat(opencode): config-merge.sh with formatting-preserving JSON merge Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> build(opencode): source config-merge.sh from adapter Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> feat(install): use oc_config_merge for opencode.json instead of overwrite Source config-merge.sh from install scripts for opencode platform so user keys in opencode.json are preserved on reinstall and update. Fix in-place merge by writing to a temp file before moving to output. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Add mcp files to gitignore. * Fix claude-specific references in agents, skills and references * Fix: remove claude-specific reference from hooks. build: add platform_dir and dispatcher_name to all hook wrapper/plugin templates feat(hooks): platform-aware path checks using platform_dir and dispatcher_name from JSON input test: update regression snapshot for platform-aware hook wrappers and scripts * Added interactive platform choice in launchme, and platform auto-detection in updateme. * Fix: remove claude-specific references from documentation * Update documentation to reflect the new platform-agnostic architecture * fix: address Copilot review feedback on PR #32 - tests/run.sh: check source return code, report failures - tests/regression/run.sh: use mktemp + trap cleanup instead of fixed /tmp paths - tests/regression/run.sh: include .mcp.json in regression comparison - tests/regression/take-snapshot.sh: use --platform flag instead of stale scripted input - adapters/opencode/templates/plugin-stub.js.tmpl: include stdout in hook block error message * fix: address Copilot review round 2 - config-merge.sh: reword comment to only promise indentation preservation (not full formatting) - take-snapshot.sh: copy required artifacts explicitly, optional ones with existence check - adapters/lib.sh: document parse_hook_yaml single-trigger limitation * fix: address Copilot review round 3 - adapters/opencode/adapter.sh: replace python3 template substitution with pure bash (while-read loop with case matching), removing python3 dependency - adapters/lib.sh: should_include now falls back to plain YAML key read for files without frontmatter delimiters (fixes hook .yaml exclude: support) * fix: address Copilot review round 4 - scripts/launchme.sh: fix double-dot in FW_DIR_NAME display (basename already includes the dot, e.g. ".claude") - scripts/launchme.sh: replace undefined MCP_ANSWER with check on MCP_DST existence for summary banner --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
163 lines
5.9 KiB
Markdown
Executable File
163 lines
5.9 KiB
Markdown
Executable File
# Using the Crew from Your Phone
|
|
|
|
> **Platform note:** This guide is specific to **Claude Code**. Remote Control is a Claude Code feature and is not available on Gemini CLI or OpenCode.
|
|
|
|
> A guide to controlling your vault from your phone using Claude Code's Remote Control feature.
|
|
|
|
---
|
|
|
|
## How it works
|
|
|
|
Claude Code has a feature called **Remote Control** that lets you control a local Claude Code session from your phone's browser or the Claude mobile app. Your computer runs Claude Code locally (with full access to your vault, agents, and MCP servers), and your phone acts as a remote interface.
|
|
|
|
Nothing moves to the cloud. Your vault stays on your computer. Your phone just sends messages and receives responses.
|
|
|
|
```
|
|
Phone (browser or Claude app)
|
|
↓ sends messages via Anthropic servers
|
|
Your computer (Claude Code running locally)
|
|
↓ executes agents, reads/writes vault
|
|
Your Obsidian vault (local files)
|
|
```
|
|
|
|
### A real-world example
|
|
|
|
I use this on the go. Before leaving, I start a Remote Control session on my laptop. Out and about, I open the session on my phone and ask: "What's on my calendar today?" or "Save this: just had an idea about reorganizing the team standup." I can even search my vault with "What do I know about the Henderson project?" and get a full answer with sources, right from my phone.
|
|
|
|
The vault, the agents, the MCP servers: everything works exactly as if I were sitting at my computer.
|
|
|
|
---
|
|
|
|
## Requirements
|
|
|
|
- **Claude Code v2.1.51 or later** (check with `claude --version`)
|
|
- **Claude Pro, Max, or Team subscription** (not API keys)
|
|
- Your computer must stay **on and connected to the internet** during the session
|
|
- A phone with a browser or the Claude mobile app (iOS/Android)
|
|
|
|
> **Team/Enterprise users:** your admin must enable Remote Control at `claude.ai/admin-settings/claude-code`.
|
|
|
|
---
|
|
|
|
## Setup (one time)
|
|
|
|
If you haven't already, make sure Claude Code is authenticated and your vault is trusted:
|
|
|
|
```bash
|
|
cd /path/to/your-vault
|
|
claude
|
|
```
|
|
|
|
If this is your first time, Claude Code will ask you to log in (`/login`) and accept the workspace trust dialog. Once that's done, you're set.
|
|
|
|
---
|
|
|
|
## Starting a session
|
|
|
|
On your computer, open a terminal and run:
|
|
|
|
```bash
|
|
cd /path/to/your-vault
|
|
claude remote-control --name "My Brain"
|
|
```
|
|
|
|
This starts a local Claude Code session and displays:
|
|
- A **session URL** you can open on your phone
|
|
- A **QR code** you can scan (press spacebar to toggle it)
|
|
|
|
The session stays running, waiting for connections. Keep this terminal open.
|
|
|
|
### Alternative: enable on an existing session
|
|
|
|
If you already have Claude Code running, type this inside the session:
|
|
|
|
```
|
|
/remote-control My Brain
|
|
```
|
|
|
|
This makes your current session accessible remotely without starting a new one.
|
|
|
|
---
|
|
|
|
## Connecting from your phone
|
|
|
|
You have three options:
|
|
|
|
### Option 1: QR code (fastest)
|
|
Press spacebar in the terminal to show the QR code. Scan it with your phone's camera or the Claude mobile app.
|
|
|
|
### Option 2: Session URL
|
|
Copy the URL shown in the terminal and open it in your phone's browser.
|
|
|
|
### Option 3: Session list
|
|
Go to [claude.ai/code](https://claude.ai/code) on your phone. Your session will appear in the list with a green indicator. Tap it to connect.
|
|
|
|
---
|
|
|
|
## Using the Crew from your phone
|
|
|
|
Once connected, you use the Crew exactly as you would on your computer. Just type (or use voice input) and the agents respond:
|
|
|
|
- "Save this: had a great idea about reorganizing the team standup" (Scribe captures it)
|
|
- "Check my email for anything urgent" (Postman scans Gmail)
|
|
- "What's on my calendar tomorrow?" (Postman checks Google Calendar)
|
|
- "Find my notes about the Henderson project" (Seeker searches your vault)
|
|
|
|
Everything runs on your computer. Your phone is just the interface.
|
|
|
|
---
|
|
|
|
## Tips for mobile use
|
|
|
|
- **Use voice input.** Most phones have built-in speech-to-text on the keyboard. Talking is faster than typing on a phone, and the Scribe handles messy voice input perfectly.
|
|
- **Keep sessions short and focused.** Mobile is great for quick captures, grocery runs, and check-ins. Save deep work for your computer.
|
|
- **Name your sessions.** The `--name` flag makes it easy to find the right session on `claude.ai/code` if you have multiple projects.
|
|
- **Your computer must stay awake.** If it goes to sleep or loses internet for more than ~10 minutes, the session ends. Adjust your sleep settings before leaving.
|
|
- **Works on mobile data.** WiFi is smoother, but cellular works fine for text-based interactions.
|
|
|
|
---
|
|
|
|
## Troubleshooting
|
|
|
|
### "Remote Control is not yet enabled"
|
|
|
|
Make sure these environment variables are NOT set in your shell:
|
|
|
|
```bash
|
|
unset CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC
|
|
unset DISABLE_TELEMETRY
|
|
```
|
|
|
|
For Team/Enterprise accounts, ask your admin to enable Remote Control in the admin settings.
|
|
|
|
### Session disappears from the list
|
|
|
|
Your computer probably went to sleep or lost internet. Go back to your computer, check the terminal, and restart the session if needed.
|
|
|
|
### Agents don't seem to activate
|
|
|
|
Make sure the terminal on your computer is running Claude Code **inside your vault folder**. If you started it in a different directory, the agents won't be loaded.
|
|
|
|
### QR code won't scan
|
|
|
|
Press spacebar to toggle the QR code display. If your terminal font is too small, try zooming in, or just copy the URL instead.
|
|
|
|
---
|
|
|
|
## What this is NOT
|
|
|
|
To be clear about limitations:
|
|
|
|
- This is **not a standalone mobile app.** Your computer must be running Claude Code for it to work.
|
|
- This does **not** sync your vault to the cloud. Everything stays local on your computer.
|
|
- You **cannot** use this with terminal SSH apps (Termius, Blink, etc.). Remote Control works through the browser or Claude mobile app only.
|
|
- If your computer is off, there is no session to connect to.
|
|
|
|
---
|
|
|
|
## Further reading
|
|
|
|
- [Claude Code Remote Control documentation](https://docs.anthropic.com/en/docs/claude-code/remote-control)
|
|
- [Getting Started with the Crew](getting-started.md)
|
|
- [Examples of daily usage](examples.md)
|