Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .agents/plugins/marketplace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"name": "slack-dev",
"interface": {
"displayName": "Slack (dev)"
},
"plugins": [
{
"name": "slack",
"source": {
"source": "local",
"path": "./"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "Productivity"
}
]
}
7 changes: 7 additions & 0 deletions .changeset/add-codex-plugin-surface.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"slack": minor
---

Add a Codex plugin surface. A new `.codex-plugin/plugin.json` manifest exposes the Slack skills to [Codex][codex], and a repo-scoped `.agents/plugins/marketplace.json` lets you install the plugin into Codex from a local checkout. The hosted MCP server is not yet wired into the Codex surface; skills only for now.

[codex]: https://developers.openai.com/codex
28 changes: 28 additions & 0 deletions .codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"name": "slack",
"version": "1.1.0",
"description": "Slack skills for building apps with the Slack CLI, Bolt, Web API, and Block Kit",
"author": {
"name": "Slack",
"url": "https://slack.com"
},
"homepage": "https://docs.slack.dev",
"repository": "https://github.com/slackapi/slack-skills-plugin",
"license": "MIT",
"skills": "./skills/",
"mcpServers": {},
"interface": {
"displayName": "Slack",
"shortDescription": "Slack skills for your AI tools",
"longDescription": "Skills for building Slack apps with the Slack CLI and Bolt, calling Web API methods, and composing Block Kit layouts, plus skills for searching and messaging in Slack when a Slack MCP server is connected.",
"defaultPrompt": "Help me build a Slack app with the Slack CLI and Bolt.",
"developerName": "Slack",
"category": "Productivity",
"capabilities": [
"Interactive",
"Read",
"Write"
],
"websiteURL": "https://docs.slack.dev/ai/mcp-server/"
}
}
27 changes: 27 additions & 0 deletions .github/maintainers_guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ Maintaining this repo requires:
Code rather than traditional CLI tooling.
- **[Cursor][cursor]**: an alternative agentic coding environment. Useful for
verifying that skills and commands work outside Claude Code before release.
- **[Codex][codex-cli]**: another agentic coding environment. Useful for
verifying that the skills work outside Claude Code before release.
- **Git**: standard version control.
- **[GitHub CLI (`gh`)][gh-cli]**: for creating PRs as drafts and managing
issues.
Expand Down Expand Up @@ -134,6 +136,30 @@ This copies the plugin into `~/.cursor/plugins/slack@local` and registers it.
To remove it, run `make cursor-uninstall`. (`make clean` also runs the Cursor
uninstall, in addition to removing the virtualenv and other generated files.)

### Testing in Codex

Codex loads plugins only from a marketplace. The repo ships a development marketplace at
`.agents/plugins/marketplace.json` that points at this checkout, so you can add
it as a local marketplace and install the plugin from it.

Register the local marketplace and install the `slack` plugin:

```sh
codex plugin marketplace add ./
codex plugin add slack@slack-dev
```

`codex plugin list` shows the plugin; `codex /plugins` opens the same flow interactively. Start a new Codex session to pick up the plugin, then invoke a skill by name with a `$` mention, for example `$block-kit`.

To remove it

```sh
codex plugin remove slack@slack-dev
codex plugin marketplace remove slack-dev
```

Codex support currently ships only the skills; the hosted MCP server is not yet wired into the Codex surface.

---

## Versioning
Expand Down Expand Up @@ -215,6 +241,7 @@ Patch and minor updates are auto-approved and auto-merged via the

[claude-code]: https://claude.ai/code
[cursor]: https://cursor.com
[codex-cli]: https://developers.openai.com/codex/cli
[gh-cli]: https://cli.github.com
[conv-commits]: https://www.conventionalcommits.org
[semver]: https://semver.org
2 changes: 2 additions & 0 deletions scripts/sync_versions.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
PACKAGE_JSON_PATH = REPO_ROOT / "package.json"
CLAUDE_PLUGIN_PATH = REPO_ROOT / ".claude-plugin" / "plugin.json"
CURSOR_PLUGIN_PATH = REPO_ROOT / ".cursor-plugin" / "plugin.json"
CODEX_PLUGIN_PATH = REPO_ROOT / ".codex-plugin" / "plugin.json"


def read_version(package_path: Path) -> str:
Expand All @@ -32,6 +33,7 @@ def main() -> None:
version = read_version(PACKAGE_JSON_PATH)
write_version(CLAUDE_PLUGIN_PATH, version)
write_version(CURSOR_PLUGIN_PATH, version)
write_version(CODEX_PLUGIN_PATH, version)


if __name__ == "__main__":
Expand Down