by amplifthq
Open-source @agent mentions for Slack and GitHub. OpenTag routes tagged requests to Codex, Claude Code, then returns results in thread.
# Add to your Claude Code skills
git clone https://github.com/amplifthq/opentagLast scanned: 6/26/2026
{
"issues": [
{
"type": "npm-audit",
"message": "esbuild: esbuild allows arbitrary file read when running the development server on Windows",
"severity": "low"
}
],
"status": "PASSED",
"scannedAt": "2026-06-26T07:52:23.086Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}opentag is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by amplifthq. Open-source @agent mentions for Slack and GitHub. OpenTag routes tagged requests to Codex, Claude Code, then returns results in thread. It has 1,152 GitHub stars.
Yes. opentag passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/amplifthq/opentag" and add it to your Claude Code skills directory (see the Installation section above).
opentag is primarily written in TypeScript. It is open-source under amplifthq on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh opentag against similar tools.
No comments yet. Be the first to share your thoughts!
Turn an existing work thread into a governed agent work loop.
OpenTag lets your team mention a coding agent from the collaboration platforms they already use. It turns that source thread into a bounded, auditable run: OpenTag curates the context packet, checks permissions and executor capability, runs Codex or Claude Code locally, records an agent work ledger, and returns concise artifacts and safe next actions to the same thread.
The concrete setup still connects Slack, GitHub, GitLab, Linear, Lark / Feishu, Telegram, or Discord to a local coding agent. The product boundary is broader than a connector: OpenTag is source-thread-native, local-first, and executor-neutral, so work stays where it already has context while the agent's inputs, authority, outputs, and callbacks remain reviewable.
Mention OpenTag in Slack, approve the suggested action, and get a real GitHub pull request.
https://github.com/user-attachments/assets/86edc4e1-7de9-4d07-a0ba-847fa6438191

OpenTag treats the thread where a request starts as the approval surface for agent-proposed system-of-record mutations. When an agent suggests a change, OpenTag renders a compact receipt that shows what will change, whether it is ready to apply, and which decision is safe now.
Apply appears only when the dispatcher confirms a configured adapter can execute the action. Otherwise the receipt shows setup or attention needed, and the local audit trail stays available through commands such as opentag status --run <run_id>.
Each run also keeps a local agent work ledger: the source event, admission decision, context packet snapshot, executor capability snapshot, produced artifacts, callback delivery, and final outcome stay available through status and dispatcher audit APIs without flooding the human thread.
Requires Node.js 20 or newer.
npm install -g @opentag/cli@latest
opentag setup
No global install for one-off terminal-mode checks:
npx @opentag/cli setup
For background service mode, prefer the global install above so the service definition points at a stable CLI path instead of an npx temporary location.
opentag setup is the main entry point. It walks through the practical choices needed to run OpenTag locally:
After setup saves the config, choose how OpenTag should run:
For scripted setup, use --service to choose the recommended background mode without the final prompt:
opentag setup --service
--service installs and starts the local background service after setup. Background service mode uses LaunchAgent on macOS and systemd --user on Linux; on other platforms, use terminal mode with opentag start for now. If you skip startup or stop OpenTag later, run opentag start manually for terminal mode or opentag service start for background mode.
Once OpenTag is running, mention it from the connected platform:
@opentag investigate this
OpenTag runs the selected coding agent locally and replies back through that platform.
If you use Codex or Claude Code and do not want to set this up by hand, start a new agent session and paste:
Help me set up OpenTag from https://github.com/amplifthq/opentag.
Use the published OpenTag CLI. Please:
1. Check that Node.js 20 or newer is available.
2. Install or run the published OpenTag CLI.
3. Run opentag setup and help me choose Slack, GitHub, GitLab, Linear, Lark / Feishu, Telegram, or Discord, a coding agent, and a local project.
4. When platform credentials are needed, open the matching setup guide in the repository and walk me through it.
5. When setup asks how OpenTag should run, choose the recommended background service option. Then verify with opentag service status and opentag doctor. If service mode is unsupported or I choose terminal mode, use opentag start and keep that terminal open.
Do not invent credentials or secrets. Ask me before entering any token, app ID, channel ID, repository, or project path.
Agents can also follow the full agent-readable setup checklist in Agent-readable install guide.
Use the guide for the platform you choose in opentag setup.
| Platform | Best first path | Guide |
|---|---|---|
| Slack | Use Socket Mode for local development | Slack setup |
| GitHub | Use a repository webhook and GitHub token | GitHub setup |
| GitLab | Use a project Note Hook and GitLab access token | GitLab setup |
| Linear | Use a workspace webhook and OAuth App install | Linear setup |
| Lark / Feishu | Scan the Personal Agent QR code from setup | Lark / Feishu setup |
| Telegram | Use BotFather token with local getUpdates polling | Telegram setup |
| Discord | Use a bot token with local Gateway delivery | Discord setup |
opentag setup can install and start the recommended background service, run OpenTag in the current terminal, or save config without starting. opentag setup --service skips the final prompt and installs plus starts the background service on macOS or Linux. Both service and terminal modes start:
Stop terminal mode with:
Ctrl-C
Stop background service mode with:
opentag service stop
OpenTag stores local config here:
~/.config/opentag/config.json
Runtime state and isolated worktrees default to:
~/.local/state/opentag
OpenTag's CLI path is local-first.
| Coding agent | Status | Notes |
|---|---|---|
| Codex | Ready | Uses the local codex command |
| Claude Code | Ready | Uses the local claude command |
| Echo | Dev/test only | Does not run a real coding agent |
| Command | What it does |
|---|---|
opentag setup |
Create or update local OpenTag config, then offer to start it |
opentag setup --service |
Create or update local OpenTag config, then install and start the background service |
opentag start |
Start the local OpenTag stack in the current terminal |
opentag service start |
Start the installed background service |
opentag service stop |
Stop the installed background service |
opentag service status |
Show background service status and runtime readiness |
opentag service logs |
Show recent background service logs |
opentag status |
Show local config and runtime status; add --run <run_id> or --channel provider:account/conversation for scoped detail |
opentag cancel |
Request cancellation for a run or the active run in a source container |
opentag doctor |
Run deeper setup checks |
opentag platforms |
List platform setup support and runtime capabilities |
opentag executors |
List available coding agents and runtime capabilities |
opentag config path |
Print the local config path |
opentag config show |
Print redacted local config |
Remove the global CLI package:
npm uninstall -g @opentag/cli
Remove local OpenTag config and state:
rm -rf ~/.config/opentag ~/.local/state/opentag
flowchart LR
A["Slack, GitHub, GitLab, Linear, Lark / Feishu, Telegram, or Discord"] --> B["OpenTag listener"]
B --> C["Local dispatcher"]
C --> D["Local runner"]
D --> E["Codex, Claude Code, or custom executor"]
E --> F["Reply back to the platform"]
The important boundary: platforms receive messages, OpenTag coordinates the run, and the coding agent executes on your machine