| name | connect |
| description | Connect a tool to Founder OS by asking in plain English. Trigger on "connect Telegram", "connect my calendar", "connect my email", "set up notifications", "hook up <tool>", "wire up <tool>", or any request to link an external tool. Routes by connector type: env-key tools (Telegram, ElevenLabs) get their key stored in the gitignored .env and a real reachability check; account-level MCP tools (calendar, email) are guided to the Claude Code MCP setup because the OS cannot hold their tokens; manual-link tools store a reference URL. A secret never lands in a tracked file - the writer refuses any target that is not gitignored, and the pre-commit guard blocks token-shaped strings as a backstop. A skipped connector leaves a visible marker the SessionStart brief surfaces.
|
| why | Connecting a tool is the first thing a new user wants and the easiest place to either leak a secret or quietly fail. Natural-language connect with mechanical secret enforcement and a reachability check that cannot lie makes setup honest from the first minute. |
| enhance | Connect only what you actually use. Each env-key connector stores its key in .env, which is gitignored - your tokens never enter the repo or the assistant's transcript when you paste them on stdin. |
| allowed-tools | ["Bash","Read","Write","Edit"] |
| mcp_requirements | [] |
Connect
Runs on: local-writes - stores keys in your gitignored .env and writes a status marker; env-key connectors also run a local script. On a surface that cannot write local files it guides only and says so.
Link an external tool to Founder OS by asking for it. The skill routes by how the tool authenticates and never lets a secret reach a tracked file.
Pre-flight
- If
core/identity.md does not exist, stop with: Founder OS not set up here. Run /founder-os:setup first.
- If
scripts/connect.py does not exist, stop with: Connector helper not found. Run /founder-os:update to install it.
The connector registry
Run python scripts/connect.py registry to see the live registry. Connectors fall into three classes:
- env-key (
telegram, elevenlabs): the OS can walk the steps and store the key locally. The key goes ONLY to the gitignored .env.
- guide-only (
calendar, email): account-level MCP tools. The OS does NOT control these, cannot run their OAuth, and cannot store their tokens. It hands you the Claude Code MCP-add steps and records the status. OAuth scopes are owned by the MCP / account layer - the OS does not pretend to set them.
- manual-link (
docs and similar): store a reference URL you paste. Honest that it is a bookmark, not a live integration.
Procedure
-
Identify the tool the user named and its class (python scripts/connect.py registry). If the tool is not in the registry, say so and offer the closest class (env-key, guide-only, or manual-link).
-
env-key class (e.g. Telegram):
- Give the setup steps from the registry (for Telegram: open @BotFather,
/newbot, copy the token, then message the new bot once so it has a chat to reply to).
- Store the token WITHOUT putting it in your own message or a command argument. Have the user paste it on stdin:
python scripts/connect.py set-secret TELEGRAM_BOT_TOKEN then the pasted value on stdin. The writer refuses any target that is not on the allowlist (.env, .mcp.local.json) and not proven ignored, so the token cannot land in a tracked file. Where the install has version history, git supplies the proof; on a ZIP install with no git, the shipped .gitignore is read directly. Connectors work on both - a missing git is never a reason to refuse.