Secret Handoff

io.github.gelandPublished by GitHub account gelandv0.0.2Updated Nov 4, 2026

Let agents use temporary secrets without receiving their values in chat. Local stdio; Node 22+.

VerifiedSTDIODesktop onlyDeveloper ToolsSecurity & Monitoring

Overview

AI-generated overview

Local stdio MCP tool that lets an agent use temporary passwords, tokens and one-time codes without their values appearing in chat.

What you can do
  • Request a temporary secret from the user through a private local browser page, with a stated reason for access
  • Request a group of 2 to 8 named credentials on one page under a single policy
  • Approve a narrow API host, method and path so the agent can use the secret by reference and get redacted results
  • Run an approved command with a secret applied, and forget secrets or whole groups when the task is done
  • Check and configure the local setup for Claude Code and Codex through the accompanying CLI and plugins
When to use it
Useful when an agent needs a temporary credential, API token or one-time code to finish a task and you do not want the value pasted into the conversation or stored in a vault. It suits Claude Code and Codex users on a desktop who want per-request browser approval of what the secret is used for.
Requirements
A local process on the user's machine: install the Secret Handoff 0.0.2 binary first and keep it on the PATH inherited by the client; Node 22+ is required. The Claude Code or Codex plugin and CLI setup commands connect the client. No account, vault, environment variables or headers are declared.
Before you install
Secrets stay in the tool process memory until forgotten or it exits, and filled secrets have no automatic expiry. Approved APIs and approved commands receive the real value, so an approved command can leak it. Opt-in Codex native approval can authorize automatically without a human click. Detection hooks cannot erase a value already saved in the client transcript, so never paste secrets into chat.

Installation

In SourceWeft

  1. Open Secret Handoff in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Secret Handoff for Claude Code and Codex

Give your agent access with a sealed secret.

Let your agent use temporary passwords, tokens, and one-time codes without putting their values in the chat. The local tool opens a private browser page, shows why the agent needs access, and applies secrets to requests you approve. No vault to configure. No Secret Handoff account.

This repository publishes the Claude Code and Codex plugins for the signed Secret Handoff 0.0.2 release. It includes the skill, local stdio MCP configuration, Claude detection hooks, and a status-only Claude card. Secret entry stays in your browser. These are repository plugins, not claims of vendor-curated directory approval.

Install

Download and install the local tool first. Choose binary 0.0.2. The website installer verifies its archive checksum and installs the binary. Run secrethandoff setup below to connect Claude Code and Codex when their CLIs are on PATH.

sh
secrethandoff versionsecrethandoff setupsecrethandoff doctor

Expected version: 0.0.2. In the project where your agent works, run secrethandoff init to add credential guidance. Start a new agent session.

Claude Code

If you prefer to install the plugin yourself after installing the binary:

sh
claude plugin marketplace add geland/secrethandoff-integrationsclaude plugin install secrethandoff@secrethandoff

Codex

sh
codex plugin marketplace add geland/secrethandoff-integrationscodex plugin add secrethandoff@secrethandoff

Restart the client or start a fresh session after installation. The binary must be on the PATH inherited by the client, including when launching a desktop app. secrethandoff doctor checks the local setup.

For a pinned marketplace, Codex accepts codex plugin marketplace add geland/secrethandoff-integrations --ref v0.0.2. Claude Code accepts the Git source https://github.com/geland/secrethandoff-integrations.git#v0.0.2 with claude plugin marketplace add. The release ZIP is also available for review.

Use

Ask your agent: “Use Secret Handoff for the temporary credential this task needs.” Enter the value only on the Secret Handoff browser page. Approve a narrow API host, method, and path. The agent uses a reference and receives redacted results. Ask the agent to forget the secret when the task is done.

Secrets live in the tool process's memory until forgotten or the process exits. Filled secrets do not have an automatic expiry timer. Approved APIs receive the value. run_with_secret requires browser command approval by default; an approved command receives the value and can leak it. Owners can opt into verified Claude Code native permission prompts or Codex approval settings; Codex settings may authorize automatically. These modes do not change how secrets are entered.

Claude detection hooks can block some accidental pastes before they reach the model. They cannot erase a value already saved in the client's local transcript. Never paste secrets into chat. Read the security boundaries.

Opt-in Codex command approval

With the supported binary and stable Codex 0.155.1 in the 0.155 series, or the exact desktop build 0.162.0-alpha.17.2, the owner can choose native host-policy authorization. It follows the owner's settings, including allow rules, hooks, and automatic review; a human click is not required in that mode. Browser approval remains the distribution default. Secret entry always stays on the isolated Secret Handoff page.

From a checkout of this repository, reload the plugin, run the owner opt-in helper, then start a fresh chat. The helper is not included in the review ZIP:

bash
codex plugin add secrethandoff@secrethandoffpython3 scripts/configure_codex_approval.py codex \  --plugin-dir ~/.codex/plugins/cache/secrethandoff/secrethandoff/0.0.2

The helper validates and edits only the installed mcp.json and .mcp.json launch environment. It does not change host policies, reviewer, or hooks. Reinstallation resets the opt-in; rerun it after reload. Use browser instead of codex to restore browser command approval. Agents may apply it only when explicitly instructed by the owner.

python3 scripts/check_codex_approval.py tests live allow/deny delivery with a harmless server. python3 scripts/check_codex_approval.py --installed-plugin checks that the real cached plugin starts with native mode and can list a new empty store. Both use child-only isolation and no secrets. Pass --codex-bin /absolute/path/to/codex to either check to validate the desktop bundled executable instead of the terminal CLI. Run python3 -m unittest discover -s tests -p test_codex_approval_config.py for helper preservation and refusal tests. Desktop prompt rendering needs a separate owner-run dummy test. Command results report client_policy / host_policy, never a claim that a human clicked.

Grouped credentials

request_secrets asks for 2–8 credentials on one local browser page. A group name identifies the request; fields have separate names and optional labels. One policy applies to every field, and all values become ready together. Wait using the group name. Forgetting the group or any member erases all members. Phone/headless relay fill is currently unsupported for groups. Existing request_secret calls still collect one value. This feature does not change command approval settings.

Release scope

  • Local handoffs for Claude Code and Codex, using secrethandoff mcp.
  • Phone and remote relay handoffs are not enabled on the public service.
  • One-time reveal links remain available separately at Share a secret.
  • Other client configurations and listing drafts are retained for later testing; they are not published marketplace listings or verified host support claims.
  • release-lock.json pins all six platform archives and six MCPB bundle hashes. Plugins start the binary on PATH; metadata does not replace or enforce that binary. Check secrethandoff version before use. Source and release provenance are available in the binary repository.

Development and validation

Use Python 3.11+ and Node 24. Install requirements-review.txt in a virtual environment, then run:

sh
python scripts/test_release.pypython scripts/validate.py --releasepython scripts/package.py --releasepython scripts/test_package.py

tests/card.test.tsx runs with the Claude mod test runner. tests/card-state.test.mjs runs with Node and TypeScript available through SECRETHANDOFF_TEST_TYPESCRIPT. See 0.0.2 release status, agent evals, and contributor guidance.

Source: README.md at commit ff815bd

Tools

0
SourceWeft started this package once in an isolated sandbox, without credentials, to list its tools. That failed: the package type cannot run in the sandbox.

Version history

1
  1. v0.0.2LatestOct 21, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts