{"slug": "claude-code-mode", "title": "Claude Code Mode", "summary": "A developer published a Claude Code plugin called code-mode that lets the model write a single JavaScript program to call MCP tools inside a sandbox, returning only the final value to the context instead of every intermediate tool result. The plugin requires Claude Code and Node.js 22.13 or later, runs each program in its own Node process with no file system and a CPU limit, and applies the user's normal permission rules to every MCP call; it is installable via the commands \"/plugin marketplace add gabe4coding/claude-code-mode\" and \"/plugin install code-mode@claude-code-mode\" and is released under the MIT license.", "body_md": "A Claude Code plugin: the model writes one JavaScript program that calls your MCP tools in a sandbox. Only the return value goes back into the context.\n\n[Quick start](#quick-start) ·\n  [Usage](https://github.com/gabe4coding/claude-code-mode/blob/main/docs/usage.mdx) ·\n  [Hints](https://github.com/gabe4coding/claude-code-mode/blob/main/docs/hints.mdx) ·\n  [Functions](https://github.com/gabe4coding/claude-code-mode/blob/main/docs/functions.mdx) ·\n  [Permissions](https://github.com/gabe4coding/claude-code-mode/blob/main/docs/permissions.mdx) ·\n  [Config](https://github.com/gabe4coding/claude-code-mode/blob/main/docs/configuration.mdx)\n\n## code-mode-explainer-github.mp4\n\nWithout code-mode, the model calls MCP tools one by one, and each full result goes into the context. With code-mode, the model writes one program. The program calls the tools, then filters and joins the results in a sandbox. Only the answer goes into the context.\n\n- **Fewer tokens** : the intermediate data stays out of the context. The model uses the context for the task.\n- **Sandbox** : the program runs in its own Node process, with no file system and a CPU limit. On macOS, and on\nLinux where`unshare -rn` works, it also has no network.\n- **Hints** : short notes for each MCP server tell the model about result formats, required arguments and limits.\nThe model can propose a new hint or the removal of a wrong hint, and you approve it.\n- **Saved functions** : the model can propose a program part that works as a function for later sessions. You read\nthe code and approve it.\n- **Your permission rules apply** : each MCP call in the program gets the normal permission check.\n\nYou need Claude Code and Node.js 22.13 or later.\n\nType these commands at the prompt of a Claude Code session:\n\n```\n/plugin marketplace add gabe4coding/claude-code-mode\n/plugin install code-mode@claude-code-mode\n```\n\nStart a new session. Then ask for a task that needs several MCP calls.\n\nIf you use auto mode, add allow rules for your MCP tools first. Read [Permissions](https://github.com/gabe4coding/claude-code-mode/blob/main/docs/permissions.mdx).\n\nYou ask: *\"Which of my open Jira issues have no update in the last 14 days?\"* The model writes one program, for\nexample:\n\n``` js\nconst issues = await call(\"mcp__claude_ai_Jira__searchJiraIssuesUsingJql\", {\n  cloudId: \"example.atlassian.net\",\n  jql: \"assignee = currentUser() AND statusCategory != Done\",\n})\nconst cutoff = Date.now() - 14 * 24 * 3600 * 1000\nreturn issues.issues\n  .filter(i => Date.parse(i.fields.updated) < cutoff)\n  .map(i => ({ key: i.key, title: i.fields.summary }))\n```\n\nThe model gets only the short list, not each full issue.\n\n| Page |  | \n|---|---|\n| [Installation](https://github.com/gabe4coding/claude-code-mode/blob/main/docs/installation.mdx) | Requirements, install, local folder, update | \n| [Usage](https://github.com/gabe4coding/claude-code-mode/blob/main/docs/usage.mdx) | The three tools, how to write a program, the result | \n| [Hints](https://github.com/gabe4coding/claude-code-mode/blob/main/docs/hints.mdx) | Write hints, approve proposals, the safety rules | \n| [Saved functions](https://github.com/gabe4coding/claude-code-mode/blob/main/docs/functions.mdx) | Approve or write functions that programs use again | \n| [Permissions](https://github.com/gabe4coding/claude-code-mode/blob/main/docs/permissions.mdx) | Manual and auto mode, allow rules | \n| [Configuration](https://github.com/gabe4coding/claude-code-mode/blob/main/docs/configuration.mdx) | Every option and its default | \n| [How it works](https://github.com/gabe4coding/claude-code-mode/blob/main/docs/how-it-works.mdx) | One run from start to end, the four sandbox layers | \n| [Troubleshooting](https://github.com/gabe4coding/claude-code-mode/blob/main/docs/troubleshooting.mdx) | Common errors and known limits | \n| [Development](https://github.com/gabe4coding/claude-code-mode/blob/main/docs/development.mdx) | Layout, tests, releases | \n\nMIT. See [LICENSE](https://github.com/gabe4coding/claude-code-mode/blob/main/LICENSE).", "url": "https://wpnews.pro/news/claude-code-mode", "canonical_source": "https://github.com/gabe4coding/claude-code-mode", "published_at": "2026-10-11 12:37:00+00:00", "updated_at": "2026-10-11 12:53:00.540358+00:00", "lang": "en", "topics": ["ai-agents", "agent-protocols", "developer-tools", "ai-tools"], "entities": ["Claude Code", "code-mode", "MCP", "Node.js", "gabe4coding", "Jira"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/claude-code-mode", "markdown": "https://wpnews.pro/news/claude-code-mode.md", "text": "https://wpnews.pro/news/claude-code-mode.txt", "jsonld": "https://wpnews.pro/news/claude-code-mode.jsonld"}}