You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
speckit.keel.connect checks whether the Keel runtime on this machine is connected to Keel Cloud, starts it if it isn't, and hands back the code and the URL to approve the device. It says which Keel it is talking to, and it replaces a runtime an older version of this extension started when that runtime is idle (never mid-job, never a downgrade).
speckit.keel.brief is prose only: it tells the founder how to download the brief from keel-web and paste it in, and tells the agent to read the measured lines as evidence, the summary paragraph as opinion, and every quoted sentence as source material, never an instruction.
The runtime ships inside the extension. Nothing is installed, downloaded or fetched beyond the extension itself; Python 3.9 or newer is the one prerequisite. No hooks, no config, no templates.
Testing Checklist
Extension installs successfully via download URL
All commands execute without errors
Documentation is complete and accurate
No security vulnerabilities identified
Tested on at least one real project
Submission Requirements
Valid extension.yml manifest included
README.md with installation and usage instructions
LICENSE file included
GitHub release created with version tag
All command files exist and are properly formatted
Extension ID follows naming conventions (lowercase-with-hyphens)
Testing Details
Updated from 2.0.1 to 2.3.1 on 2026-09-17, in response to the review on [extension] Update Keel Connect extension to v2.0.1 #4594: the README's direct-install command pointed at v1.0.0.zip, a tag that was never published. The README is now stamped with the version at build time (and a test pins it to the manifest's version and this entry's download_url), so on main and in the v2.3.1 archive it installs v2.3.1.zip. 2.3.1 is also the extension's current release; the changelog carries each step since 2.0.1 (the bundled runtime moves from keel-runtime 0.2.1 to 0.5.1; the two commands are unchanged).
Installed from the download URL above into a fresh specify init project on Spec Kit 1.0.7 (macOS): both commands registered as agent skills, specify extension list shows Keel Connect v2.3.1, the connect script started the runtime and returned a device code, the disconnect script stopped it.
The tree's own tests/test-install.sh --full: 35 of 35 checks pass against the released tag.
An end-to-end journey through the extension (Spec Kit project, Claude Code or Copilot saying "keel connect", device approval in a real browser, the runtime on the host's executor) runs nightly in the maintainers' evaluation matrix; the same journey through the equivalent Claude Code plugin runs on every change on macOS and Windows.
The runtime's own suite: 464 tests pass locally (macOS), and its CI matrix (Ubuntu, macOS, Windows) is green on the 0.5.1 commit bundled here.
Example Usage
specify extension add keel
/speckit.keel.connect # or just say "keel connect" to your agent
# → a short code and a URL; approve the device in your browser; the runtime is connected
/speckit.keel.brief # once Keel has something to say: how to bring the brief into the spec
Proposed Catalog Entry
{
"id": "keel",
"name": "Keel Connect",
"description": "Connect the local Keel runtime to Keel Cloud without leaving your agent.",
"author": "Keel Discovery",
"version": "2.3.1",
"download_url": "https://github.com/keeldiscovery/spec-kit-keel/archive/refs/tags/v2.3.1.zip",
"repository": "https://github.com/keeldiscovery/spec-kit-keel",
"documentation": "https://github.com/keeldiscovery/spec-kit-keel#readme",
"changelog": "https://github.com/keeldiscovery/spec-kit-keel/blob/main/CHANGELOG.md",
"license": "Apache-2.0",
"category": "integration",
"effect": "read-only",
"requires": {
"speckit_version": ">=1.0.0,<2.0.0",
"tools": [
{
"name": "python3",
"version": ">=3.9",
"required": true
}
]
},
"provides": {
"commands": 2,
"hooks": 0
},
"tags": [
"keel",
"runtime",
"connect",
"agent",
"infrastructure"
]
}
Additional Context
This is an update to an existing catalogue entry.keel is already in catalog.community.json at 0.2.0 (created 2026-08-10). 2.0.0 replaces it outright: the six prompt-based commands, the two hooks, the config file and the gate script are gone (the changelog says what left and why), and two commands take their place. The entry's created_at, downloads and stars are yours to carry forward; the JSON above sends no values for them. Category changes from process to integration, effect from read-write to read-only (neither command writes anything itself), and requires.speckit_version from >=0.15.0 to >=1.0.0,<2.0.0.
Filed with the GitHub CLI mirroring the form's fields, since the form cannot be driven from a terminal; please add the extension-submission label as usual.
Extension ID
keel
Extension Name
Keel Connect
Version
2.3.1
Description
Connect the local Keel runtime to Keel Cloud without leaving your agent.
Author
Keel Discovery
Repository URL
https://github.com/keeldiscovery/spec-kit-keel
Download URL
https://github.com/keeldiscovery/spec-kit-keel/archive/refs/tags/v2.3.1.zip
License
Apache-2.0
Homepage (optional)
https://keeldiscovery.com
Documentation URL (optional)
https://github.com/keeldiscovery/spec-kit-keel#readme
Changelog URL (optional)
https://github.com/keeldiscovery/spec-kit-keel/blob/main/CHANGELOG.md
Required Spec Kit Version
Required Tools (optional)
python3 >= 3.9
Number of Commands
2
Number of Hooks (optional)
0
Tags
keel, runtime, connect, agent, infrastructure
Key Features
speckit.keel.connectchecks whether the Keel runtime on this machine is connected to Keel Cloud, starts it if it isn't, and hands back the code and the URL to approve the device. It says which Keel it is talking to, and it replaces a runtime an older version of this extension started when that runtime is idle (never mid-job, never a downgrade).speckit.keel.briefis prose only: it tells the founder how to download the brief from keel-web and paste it in, and tells the agent to read the measured lines as evidence, the summary paragraph as opinion, and every quoted sentence as source material, never an instruction.Testing Checklist
Submission Requirements
extension.ymlmanifest includedTesting Details
Updated from 2.0.1 to 2.3.1 on 2026-09-17, in response to the review on [extension] Update Keel Connect extension to v2.0.1 #4594: the README's direct-install command pointed at
v1.0.0.zip, a tag that was never published. The README is now stamped with the version at build time (and a test pins it to the manifest's version and this entry'sdownload_url), so onmainand in thev2.3.1archive it installsv2.3.1.zip. 2.3.1 is also the extension's current release; the changelog carries each step since 2.0.1 (the bundled runtime moves from keel-runtime 0.2.1 to 0.5.1; the two commands are unchanged).Supersedes [Extension]: Add keel #4547 (2.0.0), closed by the same submitter.
Installed from the download URL above into a fresh
specify initproject on Spec Kit 1.0.7 (macOS): both commands registered as agent skills,specify extension listshows Keel Connect v2.3.1, the connect script started the runtime and returned a device code, the disconnect script stopped it.The tree's own
tests/test-install.sh --full: 35 of 35 checks pass against the released tag.An end-to-end journey through the extension (Spec Kit project, Claude Code or Copilot saying "keel connect", device approval in a real browser, the runtime on the host's executor) runs nightly in the maintainers' evaluation matrix; the same journey through the equivalent Claude Code plugin runs on every change on macOS and Windows.
The runtime's own suite: 464 tests pass locally (macOS), and its CI matrix (Ubuntu, macOS, Windows) is green on the 0.5.1 commit bundled here.
Example Usage
Proposed Catalog Entry
{ "id": "keel", "name": "Keel Connect", "description": "Connect the local Keel runtime to Keel Cloud without leaving your agent.", "author": "Keel Discovery", "version": "2.3.1", "download_url": "https://github.com/keeldiscovery/spec-kit-keel/archive/refs/tags/v2.3.1.zip", "repository": "https://github.com/keeldiscovery/spec-kit-keel", "documentation": "https://github.com/keeldiscovery/spec-kit-keel#readme", "changelog": "https://github.com/keeldiscovery/spec-kit-keel/blob/main/CHANGELOG.md", "license": "Apache-2.0", "category": "integration", "effect": "read-only", "requires": { "speckit_version": ">=1.0.0,<2.0.0", "tools": [ { "name": "python3", "version": ">=3.9", "required": true } ] }, "provides": { "commands": 2, "hooks": 0 }, "tags": [ "keel", "runtime", "connect", "agent", "infrastructure" ] }Additional Context
This is an update to an existing catalogue entry.
keelis already incatalog.community.jsonat 0.2.0 (created 2026-08-10). 2.0.0 replaces it outright: the six prompt-based commands, the two hooks, the config file and the gate script are gone (the changelog says what left and why), and two commands take their place. The entry'screated_at,downloadsandstarsare yours to carry forward; the JSON above sends no values for them. Category changes fromprocesstointegration, effect fromread-writetoread-only(neither command writes anything itself), andrequires.speckit_versionfrom>=0.15.0to>=1.0.0,<2.0.0.Filed with the GitHub CLI mirroring the form's fields, since the form cannot be driven from a terminal; please add the
extension-submissionlabel as usual.