Skip to content

What a workspace can add, from every marketplace it reads: plugins, one per listing (ref as name@marketplace, display_name, description, version, author, category, tags, how g1t would fetch it, and availability: available, installed with enabled, unavailable with why for sources g1t cannot read such as npm or a command, or soon for g1t's own announced ones), skills, one per skill inside those plugins (ref as plugin:skill, with added when the library already has it), and the marketplaces themselves.

GET/workspaces/{workspace}/customize/discover

Members only.

availability.kind is available, installed (with enabled), unavailable (with why: an npm or command source, or a git host g1t does not read; such a plugin still works in Claude Code) or soon (g1t’s own, announced but not released). fetch is where g1t reads the plugin from: github (at sha when the listing pins one, else ref), g1t, archive (a zip at url) or unsupported. skills on a plugin lists the skills its listing names outright, so a skills-only plugin shows them before it is fetched.

  • Authentication: Required. Send an access token as Authorization: Bearer.
  • MCP tool: customize with action discover, and the same inputs
  • Scope: An access token needs workspace:read.
Name Type Required Description
workspace string Yes The workspace’s slug.
curl https://api.g1t.sh/workspaces/flagon-io/customize/discover \
-H "Authorization: Bearer $G1T_TOKEN"

A successful request answers 200 with:

{
"plugins": [
{
"ref": "commit-commands@claude-plugins-official",
"name": "commit-commands",
"marketplace": "claude-plugins-official",
"display_name": "Commit commands",
"description": "Commands for committing, pushing and opening pull requests.",
"version": "1.0.0",
"author": "Anthropic",
"homepage": null,
"category": "productivity",
"tags": [
"git"
],
"keywords": [],
"fetch": {
"kind": "github",
"repo": "anthropics/claude-plugins-official",
"ref": null,
"sha": null,
"path": "plugins/commit-commands"
},
"availability": {
"kind": "installed",
"enabled": true
},
"skills": []
},
{
"ref": "release-notes@flagon-tools",
"name": "release-notes",
"marketplace": "flagon-tools",
"display_name": "Release notes",
"description": "Writes release notes from merged pull requests.",
"version": "0.3.1",
"author": "Flagon",
"homepage": "https://g1t.sh/flagon-io/plugins",
"category": "docs",
"tags": [],
"keywords": [
"releases"
],
"fetch": {
"kind": "g1t",
"repo": "flagon-io/plugins",
"ref": null,
"path": "plugins/release-notes"
},
"availability": {
"kind": "available"
},
"skills": [
"release-notes"
]
}
],
"skills": [
{
"ref": "release-notes:release-notes",
"name": "release-notes",
"plugin": "release-notes",
"marketplace": "flagon-tools",
"description": "Writes release notes from merged pull requests.",
"category": "docs",
"author": "Flagon",
"added": false,
"availability": {
"kind": "available"
}
}
],
"marketplaces": [
{
"name": "claude-plugins-official",
"source": {
"source": "github",
"repo": "anthropics/claude-plugins-official"
},
"builtin": true,
"about": "Official plugins from Anthropic.",
"owner": "Anthropic",
"plugins": 42,
"fetched_at": "2026-10-11T14:02:11.408Z",
"problem": null,
"added_by": null,
"added_at": null,
"can_remove": false
}
]
}

A failed request answers with one of these statuses and a body like {"error": {"code": "not_found", "message": "Repository not found."}}. See errors.

Status Code When
401 unauthenticated A token is required, or the one sent is not valid.
403 forbidden The token is valid but not allowed to do this, such as a member-only change or an agent token outside its repository.
404 not_found It does not exist, or you cannot see it.
422 invalid The input is not valid. message says which field and why.