Tethered
Manage local macOS AI task profiles for power modes, keep-awake, app priority, suspension, and memory-pressure monitoring; requires the Tethered macOS app (1.2.0+, running with Pro access), with client plugins and installation instructions available in the linked repository.
Documentation
AI task sessions
These integrations connect local AI clients to Tethered 1.2.0 or later, which includes General → AI → Task sessions and the bundled MCP adapter. Client installation and lifecycle results vary; see each client below and the dated validation record.
Enable Task sessions in Tethered, create a task profile. All saved task profiles are available while Task sessions is enabled. Keep Tethered running on the same Mac and macOS account as your AI app. Task sessions require Pro access and the permissions needed by the selected profile.
Tethered lets an assistant apply a user-created profile during local builds, test suites, or data-processing jobs. Profiles can request Automatic, Low Power, or High Power mode where supported and keep the Mac awake using Caffeinate. Users can also deprioritize selected apps or other background apps, suspend eligible background apps, or suspend apps above a configured memory threshold. Process controls can apply throughout a session or activate when macOS reports warning or critical memory pressure. Configured app exceptions, frontmost-app protection, and protection for the AI client’s process tree limit which processes are affected.
The assistant can list saved profiles, begin a session, inspect status, report progress and safeguard events, and end its session. Ending or expiring a session releases temporary controls and resumes apps Tethered suspended. Users choose the profile settings and can end sessions directly in Tethered. Configured safeguards can warn about repeated failures or output, inactivity, lack of reported progress, excessive runtime, and sustained memory pressure; pause/cancel requests require cooperation from the AI client. Heat monitoring, alerts, and configured fan protection remain active. Charging policy remains independent of task sessions.
For example: “Use my Build profile while compiling, keep the Mac awake, and end the session when the build finishes.” Choose a finite duration if you want expiration to provide a fallback when the agent does not end its session.
Install
All clients require the installed, running Tethered app, Pro access, Task Sessions enabled, and a saved profile. Select your client below. These direct installation routes do not require a public marketplace listing.
For repository-based packages, download or clone this repository and replace /path/to/Tethered with its local directory. If you already configured a direct Tethered MCP server, disable that entry before installing a plugin to avoid duplicate tools.
Claude Desktop
Download tethered-0.2.6.mcpb and import it in Claude Desktop. This public bundle launches the adapter from the installed app. An app-generated export is another option; follow its included README.
Recorded verification: Import, tool approval, and a one-minute start/status/end lifecycle passed with an earlier four-tool build. The current eight-tool package has shared adapter verification; its full Claude lifecycle has not been repeated. See validation results and dates.
Codex desktop and CLI
Run codex plugin marketplace add /path/to/Tethered, then install Tethered from the local Tethered source in the Plugins directory. Open a new chat. Manual configuration uses TOML in ~/.codex/config.toml.
Recorded verification: Interactive CLI installation, per-call approvals, and lifecycle passed. The user verified desktop plugin profile discovery and inactive status. Version 0.2.0 conversation reuse and clear-all passed in CLI; these are distinct from the current shared suspension tests. See validation results and dates.
Claude Code
Run claude plugin marketplace add /path/to/Tethered, then claude plugin install tethered@tumerit-tethered. Open a new session.
Recorded verification: Native manifest validation passed. End-to-end model calls were blocked by insufficient account credit; they are not counted as passes. See validation results and dates.
Cursor
Copy Integrations/cursor to ~/.cursor/plugins/local/tethered, then reopen Cursor and review its plugin and tool permissions. Manual configuration can be merged through Cursor’s MCP settings.
Recorded verification: Plugin discovery and a one-minute lifecycle passed after restarting the client to resolve an account-policy error. See validation results and dates.
VS Code / Copilot
Install the preview .vsix through Extensions: Install from VSIX, then review MCP tool permissions in the local agent. Manual setup uses a JSON servers entry through MCP: Open User Configuration or workspace .vscode/mcp.json.
Recorded verification: VSIX installation, four-tool discovery, approvals, and a one-minute lifecycle passed. See validation results and dates.
Google Antigravity
Copy Integrations/antigravity to ~/.gemini/config/plugins/tethered, then refresh MCP servers in Settings → Customizations.
Recorded verification: Plugin installation, read-only calls, and a one-minute lifecycle passed. This does not resolve Gemini CLI account eligibility. See validation results and dates.
Gemini CLI
Run gemini extensions install /path/to/Tethered/Integrations/gemini-cli, then open a new session.
Recorded verification: Manifest validation and permission/installation prompts passed. Model calls were blocked by UNSUPPORTED_CLIENT; an isolated current-CLI attempt encountered the same account eligibility blocker. See validation results and dates.
No token entry, adapter compilation, or language runtime installation is required. Each repository package finds the installed Tethered app through macOS and launches its bundled adapter. Moving or updating Tethered does not require regenerating these launcher packages.
These tools run on your Mac. Browser-only chats and tool processes on a remote machine, cloud VM, or container cannot use this local connection.
First connection
Ask your AI app:
Use Tethered to list saved task profiles and report session status. Do not start a session yet.
Then ask it to start a saved test profile for one minute, report status, and end that exact session. You can watch the session in Tethered or end it there. If the tools are unavailable, check that the plugin is enabled, the AI session is new, and the installed Tethered build contains its MCP adapter.
Cloud inference alone does not call for a performance session. The integrations guide models to use saved profiles for substantial local work or when explicitly requested. Model instructions do not guarantee a tool call at the start or end of every prompt.
Manual setup
If your AI app has no plugin installer, enable Task sessions in Tethered, choose the app under Manual Setup, then use one of these options:
- Open Setup opens the supported client’s installation dialog. Review and approve it there.
- Export Integration saves a package or configuration and a platform-specific README. Import the
.mcpbfile in Claude Desktop, install the.vsixfile in VS Code, or follow the exported instructions for your selected app. - Copy Configuration copies only a server entry. Merge it into the client’s existing settings; preserve any other servers.
Codex: manual configuration
TOML, ~/.codex/config.toml. Merge the copied server entry into the existing configuration.
Claude Desktop: manual configuration
JSON, ~/Library/Application Support/Claude/claude_desktop_config.json. Merge the copied server entry into the existing configuration.
Cursor, LM Studio, Windsurf, Cline, and Kiro: manual configuration
JSON through the client’s MCP settings. Merge the copied server entry into the existing configuration.
VS Code / Copilot: manual configuration
JSON servers entry through MCP: Open User Configuration or workspace .vscode/mcp.json. Merge the copied server entry into the existing configuration.
Zed: manual configuration
JSON context_servers entry through Zed settings. Merge the copied server entry into the existing configuration.
OpenCode and Kilo Code: manual configuration
JSON mcp entry through their configuration editor. Merge the copied server entry into the existing configuration.
Continue: manual configuration
YAML mcpServers entry through Continue’s configuration editor. Merge the copied server entry into the existing configuration.
Other local MCP clients: manual configuration
JSON mcpServers entry if supported by the client. Merge the copied server entry into the existing configuration.
For Codex, a Tethered app installed in /Applications produces:
[mcp_servers.tethered]
command = "/Applications/Tethered.app/Contents/MacOS/tethered-mcp"
args = []
Copied configurations use the current app location. Copy again if you move Tethered. Profile edits, session changes, and app restarts do not require a new configuration. The Claude Desktop export includes a copied adapter, so re-export and reinstall that bundle when its adapter needs updating. App-generated desktop exports are intended for the exporting Mac; they are not universal marketplace release packages.
Tested suspension and restoration
The installed worker stopped and resumed a disposable fixture app and its child. A saved profile also suspended both processes after simulated macOS warning pressure and resumed them after pressure returned to normal. See the post-test results and limits. These checks establish suspension and restoration on the tested Mac; suspension does not free the app’s memory, and a performance improvement was not measured.
Availability
These are directly distributed preview packages, not approved public-marketplace listings. Configuration-only clients use the Manual Setup fallback above. Claude Desktop bundles are exported by Tethered for the exporting Mac. VS Code/Copilot and Antigravity installation and session lifecycle checks passed; see the verification record for remaining checks.
Choose behavior for a chat
Ask “Configure Tethered for this chat.” The assistant lists saved profiles and asks you to choose one, when to activate it, and when to end sessions. Choose every prompt, explicit requests only, or criteria you describe. Choose end after each reply/task or let the session expire between replies. You can change the profile or stop using it at any time.
For example: “Use Heavy Work for every prompt in this chat and let sessions expire.” The assistant uses your saved duration, reuses its active session without extending it, and starts a new session after expiry on the next matching prompt. A different chat's active session is never taken over.
These are conversation preferences implemented through model instructions, not a native plugin settings panel. Start a fresh chat after updating. Choices are not shared across chats or written to project files. Host permissions, model behavior, and conversation context determine whether instructions run; automatic expiration remains the fallback.
VS Code and configuration-only clients receive this workflow through the updated Tethered adapter's MCP initialization instructions. With an older adapter, include task-workflow.md in chat context. This workflow update requires a newly built Tethered adapter; updating the plugin alone updates skill-based clients.
To stop all active Tethered sessions, say “Clear all Tethered task sessions.” The assistant calls clear_task_sessions, which ends the active session regardless of chat ownership and disables this chat's future activation selection. The command is safe to repeat when inactive. It requires the updated Tethered app and bundled adapter; 1.2.0 installations without that tool must use Tethered's manual End control. Other chats retain their preferences and may start another session on a later prompt.