amplifthq/opentag
Set up, run, and troubleshoot OpenTag with the published CLI across Slack, GitHub, GitLab, Linear, Lark / Feishu, Codex, Claude Code, OpenClaw, local config, platform credentials, and callback delivery.
npx skills add https://github.com/amplifthq/opentag --skill opentag
OpenTag connects collaboration platforms to a local coding agent. Use this skill when a user wants help with opentag setup, opentag start, Slack, GitHub, GitLab, Linear, Lark / Feishu, Codex, Claude Code, OpenClaw, local OpenTag config, or end-to-end setup verification.
Use the published CLI first. Do not start from repo-internal apps, old shell scripts, or private package binaries unless the user is explicitly doing core development.
Recommended user path:
npm install -g @opentag/cli
opentag setup
opentag start
No global install:
npx @opentag/cli setup
npx @opentag/cli start
Read only the reference needed for the user's path:
references/local-echo.mdreferences/slack-setup.mdreferences/github-setup.mdreferences/codex-runner.mdreferences/troubleshooting.mdFor platform credential steps, use the repository docs as the source of truth:
docs/platforms/slack.en.mddocs/platforms/github.en.mddocs/platforms/gitlab.en.mddocs/platforms/linear.en.mddocs/platforms/lark.en.mdrequest_user_input / askhuman to collect non-secret setup choices before running opentag setup, then pass those choices as CLI flags so the terminal wizard does not silently choose defaults.opentag setup until the choices are explicitly collected.opentag doctor and the built-in ACP conformance gate.cancel=no. A cancellation request stops OpenTag's local bridge, but Gateway-owned tool subprocess termination is not guaranteed; inspect provider-owned processes before starting conflicting follow-up work.opentag start as a foreground process. Tell the user to keep it running and stop it with Ctrl-C.opentag config show for redacted config.If npm install -g @opentag/cli or npx @opentag/cli ... fails before the OpenTag CLI starts, keep the exact npm error and diagnose the package delivery path before giving up. Treat errors such as ENOTFOUND, EAI_AGAIN, ETIMEDOUT, ECONNRESET, fetch failed, proxy connection failures, and TLS certificate errors as network or npm-environment issues, not as OpenTag setup failures.
Use safe, non-secret checks first:
node --version
npm config get registry
npm config get proxy
npm config get https-proxy
env | grep -i proxy
node -e "require('dns').lookup('registry.npmjs.org', (e, a, f) => console.log(e ? e.code + ' ' + e.message : a + ' ' + f))"
curl -I --max-time 15 https://registry.npmjs.org/@opentag%2fcli
npm view @opentag/cli version --fetch-timeout=15000
If DNS or registry access is flaky, say that the published CLI could not be reached yet and retry once after checking connectivity. If the user has a VPN or proxy, compare direct npm metadata access with a one-command proxy-scoped npm registry retry, but do not permanently change npm config without explicit user confirmation:
HTTPS_PROXY="<proxy-url>" HTTP_PROXY="<proxy-url>" npm view @opentag/cli version --fetch-timeout=15000
Only after npm registry metadata is reachable, retry the CLI help command:
npx --yes @opentag/cli --help
Only use a proxy URL the user provides or that is already active in the environment. Do not invent proxy hosts, tokens, certificates, or registry credentials. If npm cache metadata exists but npx --offline or npm pack --offline still fails, do not claim the CLI is available offline; report that the cache is not executable and wait for registry access to recover.
When helping a Codex user install or configure OpenTag, collect these non-secret choices with request_user_input / askhuman only when the current Codex host is actually in Plan mode and the tool is available:
opentag executors when available.If the run is still in Codex Default mode, first look for an actual runtime-provided Plan-mode transition. If none exists, stop and report that the current Codex host cannot render askhuman from Default mode. Do not claim a Plan-mode handoff is complete, do not ask the user to switch modes, do not present a plain-text fallback for the same choices, do not run opentag setup, and do not continue with guessed defaults.
After the user chooses, run opentag setup with matching flags, for example --platform, --executor, --project, --slack-mode, --tenant, --lark-setup, and --binding. Stop before entering any credential, token, app ID, app secret, signing secret, channel ID, repository name, or unconfirmed project path.
Completion: Node.js 22+ is available and the user has a local project path.
If npm cannot reach the published package, follow "Npm Registry And Network Failures" before treating setup as blocked.
Completion: opentag --help or npx @opentag/cli --help works.
Completion: opentag setup has collected platform, executor, project path, and credentials.
Completion: opentag start reports the dispatcher and selected platform listener.
Completion: opentag status or opentag doctor explains the current state, and one platform mention creates a visible response or a specific actionable error.
Completion: tell the user what was configured, what still needs platform-side setup, and how to stop or uninstall.
Default config:
~/.config/opentag/config.json
Default state and isolated worktrees:
~/.local/state/opentag
opentag setup
opentag start
opentag status
opentag doctor
opentag platforms
opentag executors
opentag config path
opentag config show
For local development inside the OpenTag repository:
corepack pnpm opentag-dev
opentag-dev setup
Take amplifthq/opentag from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference npm, npx.
Without those the skill loads but fails at the first command.