The docs say what Customize is. A new guide, Customize, replaces the Marketplace guide (its address redirects): the three parts, Skills, Connectors and Plugins, each with Yours and Discover; who adds things and who asks; adding a skill from Discover and making it available to every agent, a team or one; what a plugin's skills are called (plugin:skill), that they are read-only and larger than the library's own, and how they leave with the plugin; connectors from the directory, a plugin or an address, how each signs in (the browser with g1t registering itself as a client, a key, or nothing), what each directory server was found to need, their states, their tools as abilities under the usual levels, and grants; the built-in marketplaces, the forms Add a marketplace takes, where plugins can be read from and where not, the pinned commit, what each part of a plugin becomes, switching off, uninstalling and updates, and the limits; the formats g1t reads, key by key; requests with their new listing kinds; what a run on a runner gets; and the API. The skills, abilities, agents, integrations, workspaces, home, phone, GitHub, spend, connect-an-agent, self-hosting, context hub and runners guides and the docs home now say Customize where they said Marketplace, the linked skills repository is .claude/skills, the Abilities tab's MCP servers group is Connectors, and the MCP reference carries a note for the customize tool the API change documents.
19 files+684−2870/19 viewed
| 13 | 13 | redirects: { | |
| 14 | 14 | '/guides/g1t-agents/': '/guides/working-with-g1t/', | |
| 15 | 15 | '/guides/inbox/': '/guides/notifications/', | |
| 16 | + | '/guides/marketplace/': '/guides/customize/', | |
| 16 | 17 | '/guides/today/': '/guides/home/', | |
| 17 | 18 | }, | |
| 18 | 19 | integrations: [ | |
| ⋯ | |||
| 149 | 150 | { | |
| 150 | 151 | label: 'Connect your tools', | |
| 151 | 152 | items: [ | |
| 152 | − | { label: 'Marketplace', slug: 'guides/marketplace' }, | |
| 153 | + | { label: 'Customize', slug: 'guides/customize' }, | |
| 153 | 154 | { label: 'Integrations', slug: 'guides/integrations' }, | |
| 154 | 155 | { label: 'Model providers', slug: 'guides/models' }, | |
| 155 | 156 | { label: 'AI Gateway', slug: 'guides/ai-gateway' }, | |
| 1 | 1 | --- | |
| 2 | 2 | title: Agent abilities | |
| 3 | − | description: What an agent may do, in groups - g1t's own, its computer, each connected integration and MCP servers you add - and for each whether it acts alone, only when asked for it, after asking first, or never; whose connection it uses; and the cards it posts when it can't. | |
| 3 | + | description: What an agent may do, in groups - g1t's own, its computer, each connected integration, and the connectors and MCP servers it has - and for each whether it acts alone, only when asked for it, after asking first, or never; whose connection it uses; and the cards it posts when it can't. | |
| 4 | 4 | --- | |
| 5 | 5 | ||
| 6 | 6 | Every agent has an **Abilities** tab on its page, after **Skills**. It | |
| ⋯ | |||
| 102 | 102 | ||
| 103 | 103 | An integration that gives agents abilities but isn't connected is listed | |
| 104 | 104 | too, with **Connect** for owners and **Ask an owner** for anyone else, | |
| 105 | − | which opens its [Marketplace](/guides/marketplace/) page. Nothing on it | |
| 106 | − | can be set until it is connected. | |
| 105 | + | which opens it in [Customize](/guides/customize/#connectors). Nothing on | |
| 106 | + | it can be set until it is connected. | |
| 107 | 107 | ||
| 108 | 108 | #### Whose connection | |
| 109 | 109 | ||
| ⋯ | |||
| 119 | 119 | Sentry can't be connected per person yet, so for them the choice is the | |
| 120 | 120 | workspace's connection today. | |
| 121 | 121 | ||
| 122 | − | ### MCP servers | |
| 122 | + | ### Connectors | |
| 123 | + | ||
| 124 | + | MCP servers reach an agent in two ways, and the tab lists both under | |
| 125 | + | **Connectors**: | |
| 123 | 126 | ||
| 124 | − | Owners add MCP servers to an agent, one at a time, by a name and an HTTPS | |
| 125 | − | address on a public host. g1t lists the server's tools when it is added, | |
| 126 | − | and each tool becomes a row: | |
| 127 | + | - **The workspace's connectors**, connected once in | |
| 128 | + | [Customize](/guides/customize/#connectors) and given to every agent, a | |
| 129 | + | team or this agent. Each row says how the agent has it (**Every agent**, | |
| 130 | + | **Team QA**, **This agent**) and its state. A connector that needs a | |
| 131 | + | sign-in or a key, or has a problem, gives the agent nothing until an | |
| 132 | + | owner fixes it there. Servers that need a key or a browser sign-in are | |
| 133 | + | connected this way. | |
| 134 | + | - **Only this agent**: servers owners add to this agent alone, one at a | |
| 135 | + | time, by a name and an HTTPS address on a public host, with no sign-in. | |
| 136 | + | An agent keeps at most 10. | |
| 137 | + | ||
| 138 | + | g1t lists a server's tools when it is connected or added, keeps the first | |
| 139 | + | 40, and each tool becomes a row: | |
| 127 | 140 | ||
| 128 | 141 | - a tool the server marks as read-only is a **read**, Alone by default; | |
| 129 | 142 | - any other tool, including one the server says nothing about, counts as | |
| 130 | 143 | a **write outside g1t**, Ask first by default. | |
| 131 | 144 | ||
| 132 | 145 | Tools are offered to the agent as `<server>__<tool>`, with the arguments | |
| 133 | − | the server describes. **List its tools again** picks up a server that | |
| 134 | − | changed; **Remove** takes the server and its rows off the agent at once. | |
| 135 | − | Both are new versions of the agent. An agent keeps at most 10 servers, | |
| 136 | − | and each server's first 40 tools. Servers that need a key or a sign-in | |
| 137 | − | aren't supported yet. | |
| 146 | + | the server describes. For a server added to this agent alone, **List its | |
| 147 | + | tools again** picks up a server that changed and **Remove** takes the | |
| 148 | + | server and its rows off the agent at once; both are new versions of the | |
| 149 | + | agent. A workspace connector is listed again, signed in, given and taken | |
| 150 | + | back on its own page in Customize, and the tab links there. | |
| 138 | 151 | ||
| 139 | 152 | ## Ask first, in the conversation | |
| 140 | 153 | ||
| ⋯ | |||
| 158 | 171 | the agent doesn't have, the agent says so plainly and posts a **Request** | |
| 159 | 172 | card: | |
| 160 | 173 | ||
| 161 | − | - for an integration, **Ask the owners** opens the same request the | |
| 162 | − | Marketplace does (see [ask an owner to add something](/guides/marketplace/#ask-an-owner-to-add-something)), | |
| 163 | − | and **Open in Marketplace** goes to its page; | |
| 174 | + | - for an integration or a connector, **Ask the owners** opens the same | |
| 175 | + | request Customize does (see [requests](/guides/customize/#requests)), | |
| 176 | + | and **Open in Customize** goes to its page; | |
| 164 | 177 | - for an ability, **Ask the owners** notifies every owner with a link to | |
| 165 | 178 | the agent's Abilities tab, and **Open Abilities** goes there. | |
| 166 | 179 | ||
| ⋯ | |||
| 195 | 208 | with `abilities: { settings }` replaces its settings, and is a new | |
| 196 | 209 | version like any change. MCP servers are added and removed with the | |
| 197 | 210 | agents service's `add_mcp_server`, `refresh_mcp_server` and | |
| 198 | − | `remove_mcp_server`; they never travel with a change. | |
| 211 | + | `remove_mcp_server`; they never travel with a change. The workspace's | |
| 212 | + | connectors and who gets them are the [`customize`](/guides/customize/#api) | |
| 213 | + | resource's; which ones reach an agent is read with the agents service's | |
| 214 | + | `agent_connectors`. | |
| 199 | 215 | ||
| 200 | 216 | The computer itself has routes of its own under the agent: | |
| 201 | 217 | `GET /workspaces/{workspace}/agents/{agent}/computer` for its state and | |
| ⋯ | |||
| 208 | 224 | ||
| 209 | 225 | - [Agents](/guides/agents/): hiring, changing and running agents. | |
| 210 | 226 | - [Agent skills](/guides/agent-skills/): how an agent does a kind of work. | |
| 211 | − | - [Marketplace](/guides/marketplace/): connecting integrations, and asking an owner to. | |
| 227 | + | - [Customize](/guides/customize/): connecting connectors and integrations, and asking an owner to. | |
| 212 | 228 | - [What agents can do for whom](/guides/agent-access/): the access every ability runs within. | |
| 151 | 151 | ||
| 152 | 152 | ## The skill library | |
| 153 | 153 | ||
| 154 | − | Your workspace's own skills are under **Agents → Skills**. The library | |
| 155 | − | lists drafts waiting for review first, then every skill with its version | |
| 156 | − | and where it is attached, then g1t's foundational skills, which you can | |
| 157 | − | open to read as SKILL.md. | |
| 154 | + | Your workspace's own skills are under **Agents → Skills**, and the same | |
| 155 | + | library is **Customize → Skills → Yours** (see | |
| 156 | + | [Customize](/guides/customize/#skills), which also lists every skill the | |
| 157 | + | workspace's marketplaces publish). The library lists drafts waiting for | |
| 158 | + | review first, then every skill with its version and where it is attached, | |
| 159 | + | then the skills installed plugins brought, then g1t's foundational skills, | |
| 160 | + | which you can open to read as SKILL.md. | |
| 158 | 161 | ||
| 159 | 162 | A skill does nothing until it is attached. Open it and choose **Attach**: | |
| 160 | 163 | ||
| ⋯ | |||
| 182 | 185 | ||
| 183 | 186 | Every change is in the workspace's audit log under `agents/skills/<name>`. | |
| 184 | 187 | ||
| 188 | + | ### Skills from plugins | |
| 189 | + | ||
| 190 | + | A [plugin](/guides/customize/#plugins) installed from Customize brings its | |
| 191 | + | skills into the library, each named `plugin:skill` after the plugin | |
| 192 | + | (`pdf@anthropic-agent-skills` brings `pdf:pdf`). They are attached like | |
| 193 | + | any skill, and read-only here: a plugin's skill changes when the plugin is | |
| 194 | + | reinstalled at a newer commit, and leaves with the plugin. Agents call one | |
| 195 | + | with `use_skill` by its full name, or by its bare name when only one plugin | |
| 196 | + | brings a skill called that; a plain name means the workspace's own skill | |
| 197 | + | first. A plugin's skill may be larger than one written here (1.5 MB and | |
| 198 | + | 1,000 files), keeps its name's case, and may reuse a foundational skill's | |
| 199 | + | name, since it is always called with its prefix. See | |
| 200 | + | [skills from plugins](/guides/customize/#skills-from-plugins). | |
| 201 | + | ||
| 185 | 202 | ## The skill format | |
| 186 | 203 | ||
| 187 | 204 | A skill is a folder in the open SKILL.md format, the same one other agent | |
| ⋯ | |||
| 324 | 341 | 1. Open **Agents → Skills**. Under **Keep skills in a repository**, enter | |
| 325 | 342 | the repository as `workspace/name` and choose **Link repository**. | |
| 326 | 343 | Owners only. | |
| 327 | − | 2. Each folder in `.g1t/skills/<name>/` on its default branch becomes the | |
| 328 | − | skill `<name>`. The folder's name and the `name` in its `SKILL.md` must | |
| 329 | − | match. | |
| 344 | + | 2. Each folder in `.claude/skills/<name>/` on its default branch becomes | |
| 345 | + | the skill `<name>`: the folder Claude Code reads project skills from, so | |
| 346 | + | one repository serves both. A repository that keeps them in | |
| 347 | + | `.g1t/skills/` is still read, when it has no `.claude/skills/`. The | |
| 348 | + | folder's name and the `name` in its `SKILL.md` must match. | |
| 330 | 349 | 3. Every push to the default branch that changes a folder publishes a new | |
| 331 | 350 | version of that skill and moves all its attachments: the repository's | |
| 332 | 351 | review is the review. **Read it again** reads it on demand. | |
| ⋯ | |||
| 367 | 386 | ||
| 368 | 387 | | What | Status | | |
| 369 | 388 | | --- | --- | | |
| 370 | − | | Skills from the [Marketplace](/guides/marketplace/): an extension's skills, added in one step | Coming | | |
| 371 | 389 | | Running a skill's scripts on the agent's own computer | Coming | | |
| 372 | 390 | | Writing library edits back to the linked repository | Coming | | |
| 100 | 100 | | In the draft | What it means | | |
| 101 | 101 | | --- | --- | | |
| 102 | 102 | | **Skills** | The [foundational skills](/guides/agent-skills/) its job needs are marked **Suggested** and on; the rest are off. Turn any on or off. | | |
| 103 | − | | **What it needs connected** | Integrations its job would use, with why. Owners choose **Connect**; anyone else **Ask an owner**, which opens the integration's [Marketplace](/guides/marketplace/) page. **Soon** means nobody can connect it yet. The agent works without them and says so when asked for something that needs one. | | |
| 103 | + | | **What it needs connected** | Integrations its job would use, with why. Owners choose **Connect**; anyone else **Ask an owner**, which opens it in [Customize](/guides/customize/#connectors). **Soon** means nobody can connect it yet. The agent works without them and says so when asked for something that needs one. | | |
| 104 | 104 | | **Routines that would suit it** | Set them up on its **Routines** tab once it exists. Personal agents can't run routines yet. | | |
| 105 | 105 | | **Models and budget** | A personal agent starts with **$20 a month** and **$2 a session**. A workspace agent starts with the workspace's budget for a new agent. | | |
| 106 | 106 | ||
| ⋯ | |||
| 259 | 259 | high-volume intake and summaries never run on the most capable one. Change | |
| 260 | 260 | either if your team works differently. | |
| 261 | 261 | ||
| 262 | + | ### From plugins | |
| 263 | + | ||
| 264 | + | A [plugin](/guides/customize/#plugins) installed from Customize can bring | |
| 265 | + | subagents (`agents/<name>.md`), and **Templates** lists each under **From | |
| 266 | + | plugins**, as `plugin:name`, with the plugin it came from. Hiring from one | |
| 267 | + | works like any template: the file's `name`, `description` and `model` | |
| 268 | + | fill the agent's name, description and model, and its body becomes the | |
| 269 | + | agent's instructions, all of which you can change before you create it. | |
| 270 | + | The agent is yours once it is created, and keeps working if the plugin is | |
| 271 | + | switched off or uninstalled; the template leaves with the plugin. | |
| 272 | + | ||
| 262 | 273 | ## Title and responsibilities | |
| 263 | 274 | ||
| 264 | 275 | A role is broad on purpose. You hire Margo into QA, not into "review pull | |
| ⋯ | |||
| 794 | 805 | | Edit docs | Alone, or as a suggestion | As a suggestion | | |
| 795 | 806 | ||
| 796 | 807 | These four are also on the agent's **Abilities** tab, beside everything | |
| 797 | − | else it may do: each connected integration's actions, MCP servers an owner | |
| 798 | − | adds, and whose connection each runs on, with four levels (alone, alone | |
| 799 | − | when asked for it, ask first, never). See | |
| 808 | + | else it may do: each connected integration's actions, the connectors it | |
| 809 | + | has and MCP servers an owner adds, and whose connection each runs on, with | |
| 810 | + | four levels (alone, alone when asked for it, ask first, never). See | |
| 800 | 811 | [agent abilities](/guides/agent-abilities/). | |
| 801 | 812 | ||
| 802 | 813 | An agent also never does more for someone than that person could do | |
| ⋯ | |||
| 858 | 869 | | --- | --- | | |
| 859 | 870 | | **Sessions** | Every session it is working on, then every one it worked on before, each child under the session that started it. See [sessions](/guides/agent-sessions/). | | |
| 860 | 871 | | **Skills** | The [skills](/guides/agent-skills/) it has: g1t's foundational ones and your library's, each on or off. | | |
| 861 | − | | **Abilities** | What it may do, in groups, with a level for each: alone, alone when asked for it, ask first, or never; whose connection an integration runs on; MCP servers owners add. See [agent abilities](/guides/agent-abilities/). | | |
| 872 | + | | **Abilities** | What it may do, in groups, with a level for each: alone, alone when asked for it, ask first, or never; whose connection an integration runs on; the connectors and MCP servers it has. See [agent abilities](/guides/agent-abilities/). | | |
| 862 | 873 | | **Computer** | [Its computer](#its-computer): asleep or awake and since when, its disk against the 5 GB it holds, where it runs, and the commands it ran most recently with their output. Owners (or the member, for a personal agent) wake it, put it to sleep, or reset it. | | |
| 863 | 874 | | **Memory** | What it remembers, by scope, with where each fact came from. Pin, correct or forget facts. See [agent memory](/guides/agent-memory/). | | |
| 864 | 875 | | **Routines** | Work it does on a schedule or when something happens. See [routines](/guides/agent-routines/). | | |
| ⋯ | |||
| 943 | 954 | and agree in a visible thread when their work would overlap. | |
| 944 | 955 | <Soon /> | |
| 945 | 956 | </Card> | |
| 946 | − | <Card title="Skills and webhooks" icon="calendar-clock"> | |
| 947 | − | Skills you write or add from the Marketplace, and webhooks that wake an | |
| 948 | − | agent. Every agent already has g1t's | |
| 949 | − | [foundational skills](/guides/agent-skills/), and schedules and | |
| 950 | − | workspace events already run as [routines](/guides/agent-routines/). | |
| 957 | + | <Card title="Webhooks" icon="calendar-clock"> | |
| 958 | + | Webhooks that wake an agent. Skills are already here: every agent has | |
| 959 | + | g1t's [foundational skills](/guides/agent-skills/), your library and | |
| 960 | + | [Customize](/guides/customize/) add more, and schedules and workspace | |
| 961 | + | events already run as [routines](/guides/agent-routines/). | |
| 951 | 962 | <Soon /> | |
| 952 | 963 | </Card> | |
| 953 | 964 | </CardGrid> | |
| ⋯ | |||
| 956 | 967 | ||
| 957 | 968 | - [Chat](/guides/chat/): channels, DMs, threads and mentions. | |
| 958 | 969 | - [Agent skills](/guides/agent-skills/): what every agent can make and do, and what is coming. | |
| 959 | − | - [Agent abilities](/guides/agent-abilities/): what it may do through integrations and MCP servers, and how freely. | |
| 970 | + | - [Agent abilities](/guides/agent-abilities/): what it may do through integrations and connectors, and how freely. | |
| 971 | + | - [Customize](/guides/customize/): skills, connectors and plugins for the workspace's agents. | |
| 960 | 972 | - [What agents can do for whom](/guides/agent-access/): access, audiences | |
| 961 | 973 | and requests from people who don't work on code. | |
| 962 | 974 | - [Model providers](/guides/models/): connect your own. | |
| 31 | 31 | will use g1t's tools. [MCP tools](/reference/mcp/) lists every one. The | |
| 32 | 32 | agent sees only the tools and actions its access allows. | |
| 33 | 33 | ||
| 34 | + | When Claude Code runs on a [g1t runner](/guides/self-hosted-runners/#plugins-and-skills-on-runners) | |
| 35 | + | instead of your machine, it also gets what the workspace set up in | |
| 36 | + | [Customize](/guides/customize/): its installed plugins at their pinned | |
| 37 | + | commits, the library's skills, and its connectors, signed in. | |
| 38 | + | ||
| 34 | 39 | ### With a token instead | |
| 35 | 40 | ||
| 36 | 41 | To skip the browser, for a script or a machine without one, put an |
| 239 | 239 | for an outside collaborator is told the project's own memory, never the | |
| 240 | 240 | workspace's, and names only the projects around it that they can read. | |
| 241 | 241 | ||
| 242 | + | What extends an agent beyond the hub lives in | |
| 243 | + | [Customize](/guides/customize/): the skills, connectors and plugins a | |
| 244 | + | workspace adds. A run on a | |
| 245 | + | [g1t runner](/guides/self-hosted-runners/#plugins-and-skills-on-runners) | |
| 246 | + | gets them as one bundle beside its Context section: the plugins to fetch at | |
| 247 | + | their pinned commits, the library's skills as files, and the connectors | |
| 248 | + | that reach the agent, signed in. | |
| 249 | + | ||
| 242 | 250 | ## Building it for a workspace | |
| 243 | 251 | ||
| 244 | 252 | The first time anyone opens a workspace's Context page, g1t builds its hub: |
| 1 | + | --- | |
| 2 | + | title: Customize | |
| 3 | + | description: One place for what shapes how a workspace's agents work - Skills, Connectors and Plugins, each with what you have and what you can add. Everything installs in the formats Claude Code reads, so public marketplaces, plugins, skills, subagents and MCP servers work on g1t as they are, and what you customize reaches Claude Code when it runs on a g1t runner. | |
| 4 | + | --- | |
| 5 | + | ||
| 6 | + | **Customize** is where a workspace shapes what its agents know, what they | |
| 7 | + | can reach, and what they bring with them. It has three parts, each in two | |
| 8 | + | halves: **Yours**, what the workspace has, and **Discover**, what it can | |
| 9 | + | add. | |
| 10 | + | ||
| 11 | + | | Part | What it holds | | |
| 12 | + | | --- | --- | | |
| 13 | + | | **Skills** | What agents know how to do: g1t's [foundational skills](/guides/agent-skills/#the-foundational-skills), your workspace's [skill library](/guides/agent-skills/#the-skill-library), and every skill published in a marketplace. | | |
| 14 | + | | **Connectors** | What agents can reach: MCP servers connected once and given to agents, and g1t's own [integrations](/guides/integrations/) (GitHub, trackers, alerts, model providers). | | |
| 15 | + | | **Plugins** | Skills, agents and connectors published together, from any marketplace in the open plugin format. | | |
| 16 | + | ||
| 17 | + | Everything installable keeps the formats and the names the open ecosystem | |
| 18 | + | uses. A marketplace is a repository with `.claude-plugin/marketplace.json`; | |
| 19 | + | a plugin is a folder with `skills/`, `agents/`, `commands/` and `.mcp.json`; | |
| 20 | + | a skill is a `SKILL.md` folder. g1t reads them exactly as Claude Code does | |
| 21 | + | and invents no format of its own, so a plugin written for Claude Code | |
| 22 | + | installs here unchanged, and what a workspace customizes reaches Claude | |
| 23 | + | Code when it [runs on a g1t runner](#what-a-run-gets). | |
| 24 | + | ||
| 25 | + | Open Customize from **Apps** at the foot of the rail (the Apps page and | |
| 26 | + | the launcher lead here), from **More** on a phone, or with | |
| 27 | + | <kbd>Ctrl</kbd> <kbd>K</kbd> and *Customize*. Its address is | |
| 28 | + | `g1t.sh/<workspace>/-/customize`; each part has its own, such as | |
| 29 | + | `…/-/customize/skills`. The old `…/-/marketplace` addresses arrive here. | |
| 30 | + | ||
| 31 | + | ## Who adds things | |
| 32 | + | ||
| 33 | + | Every member of a workspace browses Customize. Only its **owners** add | |
| 34 | + | marketplaces, install plugins, connect connectors and decide which agents | |
| 35 | + | get what, because each of those reaches the workspace's data or spends | |
| 36 | + | its money. Everyone else sees **Request** where an owner sees **Install** | |
| 37 | + | or **Connect**, and asks (see [requests](#requests)). Writing and | |
| 38 | + | importing skills stays with owners and team maintainers, as in the | |
| 39 | + | [skill library](/guides/agent-skills/#who-can-do-what). | |
| 40 | + | ||
| 41 | + | Every page has a search, filters by category, by source (which | |
| 42 | + | marketplace) and by availability, and an **Add** menu: **Write a skill**, | |
| 43 | + | **Import**, **Add a marketplace** and **Add a connector by URL**. | |
| 44 | + | ||
| 45 | + | ## Skills | |
| 46 | + | ||
| 47 | + | **Skills → Yours** is the skill library, the same one as **Agents → | |
| 48 | + | Skills**: g1t's foundational skills, the skills your workspace wrote, | |
| 49 | + | imported or saved from a session, and the skills installed plugins brought. | |
| 50 | + | Writing, importing, versions and the linked repository are in | |
| 51 | + | [agent skills](/guides/agent-skills/). | |
| 52 | + | ||
| 53 | + | **Skills → Discover** lists every skill the marketplaces your workspace | |
| 54 | + | reads publish, one card per skill, with the plugin and the marketplace it | |
| 55 | + | comes from. Each card says whether your library has it already, and | |
| 56 | + | whether the plugin it is in can be installed here (see | |
| 57 | + | [what g1t can read](#where-plugins-come-from)). | |
| 58 | + | ||
| 59 | + | ### Add a skill from Discover | |
| 60 | + | ||
| 61 | + | 1. Open **Customize → Skills → Discover** and find the skill, by name or | |
| 62 | + | by what it does. | |
| 63 | + | 2. Choose **Add**. g1t installs the plugin that carries it, at its current | |
| 64 | + | commit, and the plugin's skills join the library. | |
| 65 | + | 3. Choose who gets it under **Available to**: every agent in the | |
| 66 | + | workspace, a team (every agent on it), or one agent. This is a skill | |
| 67 | + | [attachment](/guides/agent-skills/#the-skill-library), so the same | |
| 68 | + | rules apply: owners attach anywhere, team maintainers on the teams they | |
| 69 | + | maintain. | |
| 70 | + | ||
| 71 | + | A skill does nothing until it is available to someone. Owners can turn any | |
| 72 | + | skill off for one agent from its **Skills** tab, as with every skill. | |
| 73 | + | ||
| 74 | + | ### Skills from plugins | |
| 75 | + | ||
| 76 | + | A skill a plugin brings is named `plugin:skill`, after the plugin's name | |
| 77 | + | (`pdf@anthropic-agent-skills` brings `pdf:pdf`), on the library's page, on | |
| 78 | + | each agent's Skills tab and in the agent's own instructions. Agents call it | |
| 79 | + | with `use_skill` by that name, or by its bare name when only one plugin | |
| 80 | + | brings a skill called that. A plain name always means the workspace's own | |
| 81 | + | skill first. | |
| 82 | + | ||
| 83 | + | | | A skill written here | A skill from a plugin | | |
| 84 | + | | --- | --- | --- | | |
| 85 | + | | Name | Lowercase letters, digits and single hyphens, at most 64 characters; the foundational skills' names are taken | As Claude Code takes it: letters, digits, dots, underscores and hyphens, at most 64, case kept; may reuse a foundational name, since it is always called as `plugin:name` | | |
| 86 | + | | Edited | In the editor, or from the linked repository | Read-only. It changes when the plugin is reinstalled at a newer commit, and leaves with the plugin | | |
| 87 | + | | Size | 1 MB and 200 files | 1.5 MB and 1,000 files kept here. A larger folder keeps its text and leaves its biggest files out, binaries first, each named on the plugin's page; Claude Code on a runner gets the whole plugin | | |
| 88 | + | | `description` | At most 1,024 characters | Kept as written; a longer one is shortened for the listing | | |
| 89 | + | | `tools:` | Only tools agents have are accepted | Tools agents don't have are kept aside rather than refused | | |
| 90 | + | | `commands/*.md` | — | Each command file becomes a one-file skill named after the file, its `description` (or first line) saying when to use it | | |
| 91 | + | ||
| 92 | + | When a plugin is **switched off**, its skills leave every agent that had | |
| 93 | + | them at once, and come back when it is switched on. When it is | |
| 94 | + | **uninstalled**, its skills and their attachments go. | |
| 95 | + | ||
| 96 | + | ## Connectors | |
| 97 | + | ||
| 98 | + | A **connector** is an MCP server the workspace connects once, then gives | |
| 99 | + | to agents. **Connectors → Yours** lists the ones your workspace has, each | |
| 100 | + | with its state and how many tools it offers, beside g1t's own integrations | |
| 101 | + | connected here (GitHub, Linear, Jira, Sentry, Datadog, model providers and | |
| 102 | + | the rest), which keep their own [setup pages](/guides/integrations/). | |
| 103 | + | ||
| 104 | + | **Connectors → Discover** is the [directory](/guides/integrations/#the-directory): | |
| 105 | + | every tool g1t connects to, by category. A tool that publishes a remote | |
| 106 | + | MCP server (Linear, Notion, Sentry, Stripe, Figma, Supabase, Cloudflare | |
| 107 | + | and more) is connected from here; an integration g1t built itself | |
| 108 | + | (trackers, alerts, model providers) opens its own page; one marked | |
| 109 | + | **Soon** can be asked for. | |
| 110 | + | ||
| 111 | + | ### Where a connector comes from | |
| 112 | + | ||
| 113 | + | | From | How | | |
| 114 | + | | --- | --- | | |
| 115 | + | | **The directory** | Choose the tool and **Connect**. g1t knows its address and how it signs in. | | |
| 116 | + | | **A plugin** | A plugin's `.mcp.json` names servers. Installing it adds each remote (`http` or `sse`) server as a connector, named *Plugin: server*, waiting for an owner to sign in or paste a key, unless it is open. A `stdio` server runs only where Claude Code runs, and is marked so. | | |
| 117 | + | | **An address** | **Add a connector by URL**: a name (2 to 32 lowercase letters, digits and hyphens) and an HTTPS address on a public host, with how it signs in. | | |
| 118 | + | ||
| 119 | + | Two connectors with the same name get numbered. A workspace keeps at most | |
| 120 | + | 50. | |
| 121 | + | ||
| 122 | + | ### Signing in | |
| 123 | + | ||
| 124 | + | Each connector signs in the way its server asks. A directory card says | |
| 125 | + | which, and anything to know first, such as where a key comes from: | |
| 126 | + | ||
| 127 | + | | Sign-in | What happens | | |
| 128 | + | | --- | --- | | |
| 129 | + | | **Browser** | OAuth. g1t finds the server's authorization server from the server's own metadata, registers itself as a client there when the server allows it, and sends you to sign in; the sign-in uses PKCE and comes back to g1t with a code, which g1t exchanges for tokens. Tokens are kept sealed and renewed before they expire. A sign-in that takes more than 15 minutes is started again. | | |
| 130 | + | | **Key** | A key an owner pastes, sent as a header (`Authorization` unless the server names another). The key is kept sealed and never shown again. | | |
| 131 | + | | **Open** | The server needs nothing. | | |
| 132 | + | ||
| 133 | + | A server that doesn't register clients on its own can't be signed in with | |
| 134 | + | the browser from g1t; when it takes a key instead, add it by address with | |
| 135 | + | a key. A server that answers a sign-in with `401` or `403` is marked, and | |
| 136 | + | the connector asks to be signed in again or for its key to be checked. | |
| 137 | + | ||
| 138 | + | #### What each directory server needs | |
| 139 | + | ||
| 140 | + | | Sign-in | Servers | | |
| 141 | + | | --- | --- | | |
| 142 | + | | **Browser**, with g1t registering itself as a client | Atlassian, Canva, Cloudflare, Figma, Hugging Face, Intercom, Linear, Neon, Notion, PayPal, PostHog, Sentry, Stripe, Supabase and Vercel | | |
| 143 | + | | **Browser**, but only for apps registered with them | Asana and HubSpot. g1t isn't registered with them yet, so signing in from here fails until it is; their cards say so | | |
| 144 | + | | **Key** | GitHub's MCP server (a personal access token) and Zapier (the token from its MCP settings), each pasted as `Bearer <token>` | | |
| 145 | + | | **Open** | Cloudflare docs, Context7, DeepWiki and Microsoft Learn | | |
| 146 | + | ||
| 147 | + | A server that speaks only the older event-stream transport isn't listed | |
| 148 | + | until it serves the current one. | |
| 149 | + | ||
| 150 | + | On g1t.sh the sealing key is set. On a g1t you run yourself, the agents | |
| 151 | + | service's `CONNECTORS_KEY` seals connectors' keys and tokens; without it, | |
| 152 | + | open servers work and nothing that signs in can be kept. See | |
| 153 | + | [run g1t yourself](/guides/self-hosting/). | |
| 154 | + | ||
| 155 | + | ### States | |
| 156 | + | ||
| 157 | + | | State | What it means | | |
| 158 | + | | --- | --- | | |
| 159 | + | | **Connected** | Its tools were listed and agents that have it can use them. | | |
| 160 | + | | **Needs sign-in** | A browser sign-in hasn't been done, or was signed out. | | |
| 161 | + | | **Needs a key** | A key hasn't been pasted yet. | | |
| 162 | + | | **Problem** | Its last check or renewal failed; the connector says why. **List its tools again** checks again. | | |
| 163 | + | ||
| 164 | + | Only a connected connector reaches agents. One in any other state is | |
| 165 | + | listed, with what it needs, and gives agents nothing until it is fixed. | |
| 166 | + | ||
| 167 | + | ### Tools and what agents may do with them | |
| 168 | + | ||
| 169 | + | When a connector connects, g1t lists the server's tools and keeps the | |
| 170 | + | first 40. Each becomes an ability on every agent that has the connector, | |
| 171 | + | offered as `<connector>__<tool>`, with the arguments the server | |
| 172 | + | describes, under the same [levels](/guides/agent-abilities/#the-levels) | |
| 173 | + | as every ability: | |
| 174 | + | ||
| 175 | + | - a tool the server marks read-only is a **read**, Alone by default; | |
| 176 | + | - any other tool, including one the server says nothing about, is a | |
| 177 | + | **write outside g1t**, Ask first by default: the agent posts a card | |
| 178 | + | saying what it would do, and waits for Allow or Deny. | |
| 179 | + | ||
| 180 | + | A call carries the connector's sign-in. If the sign-in can't be renewed, | |
| 181 | + | the agent is told that an owner needs to sign the connector in again, and | |
| 182 | + | the connector shows **Problem**. Levels, Ask-first cards and the | |
| 183 | + | [audit log](/guides/audit-log/) work exactly as for an agent's own MCP | |
| 184 | + | servers. | |
| 185 | + | ||
| 186 | + | ### Who gets a connector | |
| 187 | + | ||
| 188 | + | A connector reaches agents through **grants**, which work like a skill's | |
| 189 | + | attachments. Open the connector and choose **Give to**: | |
| 190 | + | ||
| 191 | + | | Give to | Who gets it | Who can | | |
| 192 | + | | --- | --- | --- | | |
| 193 | + | | Every agent in the workspace | Every agent, `@g1t` included | Owners | | |
| 194 | + | | A team | Every agent on the team | Owners | | |
| 195 | + | | One agent | That agent | Owners | | |
| 196 | + | ||
| 197 | + | The same grant twice is one. An agent's **Abilities** tab lists each | |
| 198 | + | connector that reaches it under **Connectors**, with how it has it (every | |
| 199 | + | agent, a team, this agent) and a level for each tool, beside the MCP | |
| 200 | + | servers added to that agent alone, marked **Only this agent**. See | |
| 201 | + | [agent abilities](/guides/agent-abilities/#connectors). | |
| 202 | + | ||
| 203 | + | ### Manage a connector | |
| 204 | + | ||
| 205 | + | On a connector's page, owners can: | |
| 206 | + | ||
| 207 | + | - **List its tools again**, to pick up a server that changed, or to check | |
| 208 | + | one that showed a problem. | |
| 209 | + | - **Sign out** (browser sign-ins): the tokens go, and the connector needs a | |
| 210 | + | sign-in again. **Replace the key** (keys): the new key is sealed and the | |
| 211 | + | tools listed again. | |
| 212 | + | - **Take back** a grant, or **Remove** the connector, which removes every | |
| 213 | + | grant with it. Uninstalling a plugin removes the connectors it brought. | |
| 214 | + | ||
| 215 | + | Adding, keying, signing in and out, granting, taking back and removing a | |
| 216 | + | connector are in the audit log under `customize/connectors/<name>`. | |
| 217 | + | ||
| 218 | + | ## Plugins | |
| 219 | + | ||
| 220 | + | A **plugin** is a folder in the open plugin format, listed in a | |
| 221 | + | **marketplace**. Installing one spreads its parts to where g1t's agents use | |
| 222 | + | them, and keeps the rest for Claude Code on a runner. | |
| 223 | + | ||
| 224 | + | ### Marketplaces | |
| 225 | + | ||
| 226 | + | Every workspace starts with three marketplaces, built in, kept current by | |
| 227 | + | g1t and not removable: | |
| 228 | + | ||
| 229 | + | | Marketplace | What it lists | | |
| 230 | + | | --- | --- | | |
| 231 | + | | `claude-plugins-official` | Anthropic's reviewed plugins: tools, connectors and skills from Anthropic and the companies behind them. | | |
| 232 | + | | `anthropic-agent-skills` | Anthropic's skills: documents, spreadsheets, presentations, PDFs, design, testing and more. | | |
| 233 | + | | `g1t` | g1t's own plugins: what g1t is building for what a team does besides code (see [what g1t is building](#what-g1t-is-building)). | | |
| 234 | + | ||
| 235 | + | Owners add more with **Add a marketplace**, from **Plugins** or | |
| 236 | + | `…/-/customize/marketplaces`, in the forms Claude Code's | |
| 237 | + | `plugin marketplace add` takes: | |
| 238 | + | ||
| 239 | + | | Type | Read as | | |
| 240 | + | | --- | --- | | |
| 241 | + | | `owner/repo`, `owner/repo#ref` or `owner/repo@ref` | A public repository on GitHub, or a repository on this g1t when `owner/repo` names one you can read | | |
| 242 | + | | A `github.com` address, with or without `.git` or `/tree/<ref>` | The same repository on GitHub | | |
| 243 | + | | A git address on this g1t | The repository here | | |
| 244 | + | | A link ending in `marketplace.json` | That file alone. Plugins it lists by a relative path can't be reached this way, so add such a marketplace by its repository instead | | |
| 245 | + | ||
| 246 | + | The marketplace is named as its `marketplace.json` names itself, unless | |
| 247 | + | you give another name. Names Claude Code keeps for its own marketplaces | |
| 248 | + | (and `g1t`) are refused, so `name@claude-plugins-official` always means | |
| 249 | + | the real thing. A workspace reads at most 20 marketplaces of its own; a | |
| 250 | + | `marketplace.json` is at most 4 MB. | |
| 251 | + | ||
| 252 | + | A marketplace's manifest is read when it is added, again when it is older | |
| 253 | + | than six hours and someone opens Discover, and on **Read it again**. | |
| 254 | + | When it can't be read, the marketplace stays listed with the problem, so | |
| 255 | + | it can be read again later. **Remove** takes a marketplace off the | |
| 256 | + | workspace; plugins installed from it stay installed. | |
| 257 | + | ||
| 258 | + | ### Where plugins come from | |
| 259 | + | ||
| 260 | + | Each plugin entry in a marketplace says where its files are (Claude Code's | |
| 261 | + | `source`). g1t reads some of those places and not others: | |
| 262 | + | ||
| 263 | + | | Source | On g1t | | |
| 264 | + | | --- | --- | | |
| 265 | + | | A relative path inside the marketplace's repository | Read, when the marketplace is on GitHub or on this g1t | | |
| 266 | + | | `github` (`owner/repo`, with a `ref` or a `sha`) | Read: public repositories, at the commit the ref names | | |
| 267 | + | | `url` or `git-subdir` on github.com or on this g1t | Read | | |
| 268 | + | | `archive` (a zip over HTTPS, with an optional `sha256`) | Read; the checksum is checked when given | | |
| 269 | + | | `npm` | Listed as **Not available here**: g1t doesn't install from npm yet. It still works in Claude Code | | |
| 270 | + | | `command` | Listed as **Not available here**: it is produced by a command on the installing machine, which g1t can't run. It still works in Claude Code | | |
| 271 | + | | A git host other than GitHub or this g1t | Listed as **Not available here** | | |
| 272 | + | ||
| 273 | + | Private GitHub repositories aren't read yet. A plugin read here holds at | |
| 274 | + | most 2,000 files and 24 MB together; a file over 2 MB is left out and | |
| 275 | + | named on the plugin's page. Claude Code on a runner fetches the plugin | |
| 276 | + | whole for itself, so nothing is lost there. | |
| 277 | + | ||
| 278 | + | ### Discover and a plugin's page | |
| 279 | + | ||
| 280 | + | **Plugins → Discover** lists every plugin every marketplace lists, by | |
| 281 | + | category, each with its availability: | |
| 282 | + | ||
| 283 | + | | Availability | What it means | | |
| 284 | + | | --- | --- | | |
| 285 | + | | **Available** | Installable now. Owners see **Install**; everyone else **Request**. | | |
| 286 | + | | **Installed**, or **Switched off** | The workspace has it. | | |
| 287 | + | | **Not available here** | g1t can't fetch it, with why (above). | | |
| 288 | + | | **Soon** | g1t's own, announced but not released. Nothing can be pressed. | | |
| 289 | + | ||
| 290 | + | A plugin's page, `…/-/customize/plugins/<name@marketplace>`, shows its | |
| 291 | + | README, its marketplace and who owns it, its manifest (name, version, | |
| 292 | + | license, repository), and what it brings: skills, agents, commands, MCP | |
| 293 | + | servers, and whether it carries hooks, LSP servers, output styles or | |
| 294 | + | `bin/`. Anything that couldn't be read is listed too. | |
| 295 | + | ||
| 296 | + | ### Install a plugin | |
| 297 | + | ||
| 298 | + | 1. Open the plugin's page and choose **Install**. Owners only. | |
| 299 | + | 2. g1t fetches the plugin at a **pinned commit**: the commit the | |
| 300 | + | marketplace's `sha` or `ref` names, or the head it is at now. The | |
| 301 | + | install remembers that commit; the plugin never changes under you. | |
| 302 | + | 3. Each part goes where g1t's agents use it: | |
| 303 | + | ||
| 304 | + | | In the plugin | Becomes | | |
| 305 | + | | --- | --- | | |
| 306 | + | | `skills/<name>/SKILL.md` | A library skill, `plugin:name`, read-only, ready to be made available to agents | | |
| 307 | + | | `commands/<name>.md` | A one-file skill, `plugin:name` | | |
| 308 | + | | `agents/<name>.md` | A template under **Agents → Templates → From plugins**, to [hire an agent from](/guides/agents/#role-templates) | | |
| 309 | + | | `.mcp.json` servers of type `http` or `sse` | A connector each, waiting for an owner to sign in or paste a key | | |
| 310 | + | | `.mcp.json` servers of type `stdio` | Marked **Claude Code only**; nothing on g1t's agents | | |
| 311 | + | | `hooks/hooks.json`, `.lsp.json`, `output-styles/`, `bin/` | Kept for Claude Code on a runner, which fetches the plugin whole at the same commit | | |
| 312 | + | ||
| 313 | + | The plugin's files aren't copied into g1t beyond its skills and | |
| 314 | + | subagents. A runner fetches them when a job runs (see | |
| 315 | + | [what a run gets](#what-a-run-gets)). | |
| 316 | + | ||
| 317 | + | ### Switch off, uninstall and update | |
| 318 | + | ||
| 319 | + | | | | | |
| 320 | + | | --- | --- | | |
| 321 | + | | **Switch off** | The kill switch. The plugin's skills leave every agent at once, its agents leave Templates, and runners stop getting it. **Switch on** brings them back. | | |
| 322 | + | | **Uninstall** | Its skills and their attachments go, and the connectors it brought are removed. The record of who installed and removed it stays. | | |
| 323 | + | | **Update available** | Its marketplace lists a newer version or commit than the one installed. An install never moves on its own: to take the update, uninstall the plugin and install it again, then make its skills available again. | | |
| 324 | + | ||
| 325 | + | A workspace installs at most 100 plugins. Installing, switching on and | |
| 326 | + | off and uninstalling are in the audit log under | |
| 327 | + | `customize/plugins/<name@marketplace>`, and adding or removing a | |
| 328 | + | marketplace under `customize/marketplaces/<name>`. | |
| 329 | + | ||
| 330 | + | ### What g1t is building | |
| 331 | + | ||
| 332 | + | g1t's own marketplace, `g1t`, is where g1t's own plugins are listed as | |
| 333 | + | they are released. The ones announced are marked **Soon** and can't be | |
| 334 | + | installed until their first release: | |
| 335 | + | ||
| 336 | + | | Plugin | What it adds | | |
| 337 | + | | --- | --- | | |
| 338 | + | | **Mail** | Email on your own domain, with shared inboxes agents work in. | | |
| 339 | + | | **Support** | Conversations, escalations, macros and a knowledge base; bug reports become issues in Code. | | |
| 340 | + | | **CRM** | Accounts, deals by stage and a forecast, kept current by agents. | | |
| 341 | + | | **Recruiting** | Openings, candidates, scorecards and interview loops. Agents screen; people decide. | | |
| 342 | + | | **On-call** | Rotations, pages and incidents. | | |
| 343 | + | | **Helpdesk bridge**, **CRM bridge**, **ERP bridge** | Each bridges a system your team already runs, so agents work across it and g1t together. Anything that changes money or stock waits for a person. | | |
| 344 | + | ||
| 345 | + | ## The formats | |
| 346 | + | ||
| 347 | + | g1t reads the files below exactly as Claude Code does, and ignores keys it | |
| 348 | + | doesn't know, so a plugin never needs a g1t version. Paths are inside the | |
| 349 | + | repository or the plugin's folder. | |
| 350 | + | ||
| 351 | + | ### `.claude-plugin/marketplace.json` | |
| 352 | + | ||
| 353 | + | | Key | Required | What it is | | |
| 354 | + | | --- | --- | --- | | |
| 355 | + | | `name` | Yes | The marketplace's name: letters, digits, `.`, `_` and `-`, starting with a letter or digit, at most 64. Plugins are `name@marketplace` by it. | | |
| 356 | + | | `owner` | Yes | `{ "name", "email", "url" }`, or a name alone. | | |
| 357 | + | | `plugins` | Yes | The plugins it lists (below). An entry that can't be read is noted, not refused, and the others are listed. | | |
| 358 | + | | `description`, `version` | No | Shown on the marketplace. `metadata.description` and `metadata.version` are read too. | | |
| 359 | + | | `metadata.pluginRoot` | No | The folder bare plugin paths resolve under. | | |
| 360 | + | ||
| 361 | + | Each entry in `plugins`: | |
| 362 | + | ||
| 363 | + | | Key | Required | What it is | | |
| 364 | + | | --- | --- | --- | | |
| 365 | + | | `name` | Yes | The plugin's name, like `pr-review-toolkit`: letters, digits, `.`, `_` and `-`, at most 64. Listed once per marketplace. | | |
| 366 | + | | `source` | Yes | A relative path (`./plugins/pdf`), or an object: `{ "source": "github", "repo", "ref", "sha" }`, `url`, `git-subdir` (`url`, `path`), `archive` (`url`, `sha256`), `npm` (`package`, `version`), `command` (`command`). See [where plugins come from](#where-plugins-come-from). | | |
| 367 | + | | `description`, `version`, `author`, `homepage`, `repository`, `license`, `keywords`, `category`, `tags`, `displayName` | No | Shown on the card and the page. | | |
| 368 | + | | `skills`, `commands`, `agents` | No | Component paths, added to the plugin's standard folders. A skills-only plugin that names its skills here is listed in Discover's Skills without being fetched. | | |
| 369 | + | | `mcpServers` | No | Servers, in `.mcp.json`'s shape, for a plugin without a `plugin.json`. | | |
| 370 | + | | `strict` | No | `false` means the entry names its components outright and the standard folders aren't read, as a marketplace that keeps many plugins in one repository does. | | |
| 371 | + | ||
| 372 | + | ### `.claude-plugin/plugin.json` and the plugin's layout | |
| 373 | + | ||
| 374 | + | `plugin.json` is optional: a folder with the layout alone is a plugin, and | |
| 375 | + | only `name` is required when the file is there. | |
| 376 | + | ||
| 377 | + | | Key | What it is | | |
| 378 | + | | --- | --- | | |
| 379 | + | | `name` | The plugin's name, as above. | | |
| 380 | + | | `displayName`, `version`, `description`, `author`, `homepage`, `repository`, `license`, `keywords` | Shown on the page. | | |
| 381 | + | | `skills`, `commands`, `agents`, `hooks` | Component paths besides the standard folders (`./` is kept off; `.` is the root). | | |
| 382 | + | | `mcpServers` | Servers inline, in `.mcp.json`'s shape, or a path to a file holding them. | | |
| 383 | + | | `lspServers` | Whether it brings LSP servers (Claude Code only). | | |
| 384 | + | ||
| 385 | + | | In the folder | What g1t does with it | | |
| 386 | + | | --- | --- | | |
| 387 | + | | `skills/<name>/SKILL.md` | A skill each | | |
| 388 | + | | `commands/*.md` | A one-file skill each | | |
| 389 | + | | `agents/*.md` | A hireable template each | | |
| 390 | + | | `.mcp.json` | Connectors (remote servers) | | |
| 391 | + | | `hooks/hooks.json`, `.lsp.json`, `output-styles/`, `bin/` | Kept for Claude Code on a runner | | |
| 392 | + | | `README.md` | Shown on the plugin's page | | |
| 393 | + | ||
| 394 | + | ### `SKILL.md` | |
| 395 | + | ||
| 396 | + | The [skill format](/guides/agent-skills/#the-skill-format), unchanged: | |
| 397 | + | YAML front-matter, then the instructions. | |
| 398 | + | ||
| 399 | + | | Key | Required | What it is | | |
| 400 | + | | --- | --- | --- | | |
| 401 | + | | `name` | Yes (for a plugin's skill, the folder's name when absent) | The skill's name. | | |
| 402 | + | | `description` | Yes | When to use it, at most 1,024 characters. | | |
| 403 | + | | `license`, `compatibility`, `metadata`, `allowed-tools` | No | Kept as written; change nothing. | | |
| 404 | + | | `tools` | No | g1t's own key: the agent tools the skill uses. | | |
| 405 | + | | `requires_computer` | No | g1t's own key: `true` when the skill needs the agent's own computer. | | |
| 406 | + | ||
| 407 | + | ### `agents/<name>.md` | |
| 408 | + | ||
| 409 | + | A subagent file: front-matter, then the system prompt as the body. Both | |
| 410 | + | `name` and `description` are required, and the body can't be empty. | |
| 411 | + | ||
| 412 | + | | Key | What it is | On g1t | | |
| 413 | + | | --- | --- | --- | | |
| 414 | + | | `name` | At most 256 characters, no colon, not starting with a hyphen | The template's name, `plugin:name` | | |
| 415 | + | | `description` | When to use it | The template's description | | |
| 416 | + | | `model` | The model it prefers | Kept with the template, for the agent's model limits | | |
| 417 | + | | `tools`, `disallowedTools` | Claude Code's or MCP tool names, as a list or separated by commas | Kept with the template; g1t's agents use g1t's own tools and abilities | | |
| 418 | + | | `skills`, `mcpServers`, `color` | Skills to preload, servers it uses, its colour | Kept as written | | |
| 419 | + | | The body | The system prompt | The agent's instructions when you hire from it | | |
| 420 | + | ||
| 421 | + | ### `.mcp.json` | |
| 422 | + | ||
| 423 | + | ```json | |
| 424 | + | { | |
| 425 | + | "mcpServers": { | |
| 426 | + | "linear": { "type": "http", "url": "https://mcp.linear.app/mcp" }, | |
| 427 | + | "search": { "type": "sse", "url": "https://example.com/sse", "headers": { "Authorization": "Bearer ${SEARCH_KEY}" } }, | |
| 428 | + | "local": { "command": "npx", "args": ["-y", "some-server"] } | |
| 429 | + | } | |
| 430 | + | } | |
| 431 | + | ``` | |
| 432 | + | ||
| 433 | + | | Server | On g1t | | |
| 434 | + | | --- | --- | | |
| 435 | + | | `type: http` (or `streamable-http`) or `sse`, with a `url` | A connector. One whose `url` or `headers` reference a `${VARIABLE}` asks for a key; one without asks for a browser sign-in. | | |
| 436 | + | | `type: stdio`, or a `command` with no type | Claude Code only. | | |
| 437 | + | | A `url` with no `type` | Noted as a problem: a remote server says its type. | | |
| 438 | + | | `ws`, `sdk` | Not a connector. | | |
| 439 | + | ||
| 440 | + | A server's name is letters, digits, dots, underscores and hyphens, at | |
| 441 | + | most 64. | |
| 442 | + | ||
| 443 | + | ## Requests | |
| 444 | + | ||
| 445 | + | Anyone who isn't an owner asks for what they need from the same place an | |
| 446 | + | owner would add it: | |
| 447 | + | ||
| 448 | + | 1. Choose **Request** on a plugin, a skill from Discover, or a connector. | |
| 449 | + | 2. Check what you are asking for: the dialog shows where it comes from and | |
| 450 | + | that it is available. | |
| 451 | + | 3. Say why you want it, if you like (280 characters), and choose | |
| 452 | + | **Send request**. | |
| 453 | + | ||
| 454 | + | Every owner is notified. The button then reads **Requested**, and **Your | |
| 455 | + | requests** lists it until an owner answers; you are notified when one does. | |
| 456 | + | You can't ask twice for the same thing while a request is waiting, and you | |
| 457 | + | can have 20 waiting at once. | |
| 458 | + | ||
| 459 | + | Owners answer requests from **Requests** in Customize's header, at | |
| 460 | + | `…/-/customize/requests`, which shows how many are waiting: | |
| 461 | + | ||
| 462 | + | | | | | |
| 463 | + | | --- | --- | | |
| 464 | + | | **Install** or **Connect** | Opens where it is added. Installing a plugin, or signing a connector in, answers every request for it by itself. | | |
| 465 | + | | **Mark added** | After you added it another way. | | |
| 466 | + | | **Turn down** | The person who asked is told. They can ask again. | | |
| 467 | + | ||
| 468 | + | Answered requests stay listed for 30 days. A request names its listing as | |
| 469 | + | `plugin:<name@marketplace>`, `skill:<name@marketplace>/<skill>`, | |
| 470 | + | `connector:<id>` (from the directory) or `integration:<id>` (one of g1t's | |
| 471 | + | own integrations). When an agent needs a connector or an integration that | |
| 472 | + | isn't connected, it posts a **Request** card in the conversation that | |
| 473 | + | opens the same request (see | |
| 474 | + | [when something is missing](/guides/agent-abilities/#when-something-is-missing)). | |
| 475 | + | Open requests also appear on owners' | |
| 476 | + | [Home](/guides/home/#where-youre-needed). | |
| 477 | + | ||
| 478 | + | ## What a run gets | |
| 479 | + | ||
| 480 | + | When Claude Code runs a job on a [g1t runner](/guides/self-hosted-runners/), | |
| 481 | + | it is given what the workspace customized, as the job's agent would have | |
| 482 | + | it: every installed plugin that is switched on, to fetch at its pinned | |
| 483 | + | commit; the library's own skills that reach the agent, as files; and the | |
| 484 | + | connected connectors that reach it, with what signs them in. The runner | |
| 485 | + | writes the plugins to disk and starts Claude Code with each as a plugin | |
| 486 | + | directory, puts the skills where it reads them, and merges the connectors | |
| 487 | + | into its MCP configuration. See | |
| 488 | + | [plugins and skills on runners](/guides/self-hosted-runners/#plugins-and-skills-on-runners). | |
| 489 | + | ||
| 490 | + | Chat replies and [sessions](/guides/agent-sessions/) on g1t get the same | |
| 491 | + | things in their own way: skills through `use_skill`, connectors as | |
| 492 | + | abilities with levels. | |
| 493 | + | ||
| 494 | + | ## API | |
| 495 | + | ||
| 496 | + | Customize is in the REST API under `/workspaces/{workspace}/customize/…` | |
| 497 | + | and in the MCP server as the `customize` tool, one action per thing an | |
| 498 | + | owner does here: marketplaces, Discover, plugins and installs, connectors | |
| 499 | + | with their sign-ins and grants. Reading needs `workspace:read`; adding, | |
| 500 | + | installing, connecting and granting need `workspace:admin`, as a person | |
| 501 | + | who owns the workspace. The bundle a runner reads, | |
| 502 | + | `GET /workspaces/{workspace}/customize/bundle`, needs `agents:run` and is | |
| 503 | + | read with a job's agent token, since it carries the connectors' sign-ins. | |
| 504 | + | See the [MCP tools](/reference/mcp/) and the [API reference](/reference/api/). | |
| 505 | + | ||
| 506 | + | ## Next | |
| 507 | + | ||
| 508 | + | - [Agent skills](/guides/agent-skills/): the library, the skill format, versions and the linked repository. | |
| 509 | + | - [Agent abilities](/guides/agent-abilities/): the levels every connector's tools run under. | |
| 510 | + | - [Agents](/guides/agents/): hiring an agent from a plugin's template. | |
| 511 | + | - [Self-hosted runners](/guides/self-hosted-runners/): where what you customize reaches Claude Code. |
| 107 | 107 | 1. Make sure your GitHub account is linked: **Connect GitHub** on the import | |
| 108 | 108 | page, or **Link GitHub** in [Settings → GitHub](https://g1t.sh/settings/github). | |
| 109 | 109 | 2. Open `g1t.sh/new/github?workspace=<workspace>`. You can also get there | |
| 110 | − | from **Connect** beside GitHub in the workspace's Integrations or | |
| 111 | − | Marketplace. | |
| 110 | + | from **Connect** beside GitHub in **Customize → Connectors**. | |
| 112 | 111 | 3. Under **Already installed on GitHub**, choose **Add to** the workspace | |
| 113 | 112 | beside the GitHub account or organization. | |
| 114 | 113 | ||
| 115 | 114 | Only a workspace owner can add one, and only an installation your own | |
| 116 | 115 | GitHub account can see: on your account, or on an organization you belong | |
| 117 | − | to. Once added, GitHub shows as connected in the workspace's Integrations | |
| 118 | − | and Marketplace. | |
| 116 | + | to. Once added, GitHub shows as connected under **Customize → | |
| 117 | + | Connectors**. | |
| 119 | 118 | ||
| 120 | 119 | If GitHub sends you to g1t after an installation that did not start from | |
| 121 | 120 | g1t, g1t asks which of the workspaces you own to add it to. It is the same |
| 31 | 31 | | --- | --- | | |
| 32 | 32 | | Code | A failed production build; an agent's pull request that stopped and needs a decision, including one whose checks fail; a pull request ready for you to merge; a review asked of you by name; an invitation to a repository; an agent run that stopped reporting; a job waiting for a self-hosted runner | | |
| 33 | 33 | | Agents | The workspace's agents at 100% of its monthly agent budget, and an agent out of its own monthly budget, both shown only to those who may raise them; a session stopped at its spend cap that you may approve more for; an agent waiting | | |
| 34 | − | | Marketplace | A member's open request to add an extension or integration, shown only to owners | | |
| 34 | + | | Customize | A member's open request to add a plugin, a skill or a connector, shown only to owners; it opens [Customize → Requests](/guides/customize/#requests) | | |
| 35 | 35 | | Notifications | An unread notification in this workspace that is a warning (someone or something is waiting) or a failure | | |
| 36 | 36 | | Chat | A conversation that mentions you, or a direct message you haven't read. Muted conversations are left out | | |
| 37 | 37 | ||
| ⋯ | |||
| 220 | 220 | ### Decisions | |
| 221 | 221 | ||
| 222 | 222 | Decisions recorded in the workspace's [memory](/guides/agent-memory/) in | |
| 223 | − | the span, and Marketplace requests an owner answered, with who made each. | |
| 223 | + | the span, and Customize requests an owner answered, with who made each. | |
| 224 | 224 | Memories still waiting to be kept are left out. With none, the card is not | |
| 225 | 225 | shown. | |
| 226 | 226 | ||
| 6 | 6 | g1t connects to the tools your work already lives in: where errors are | |
| 7 | 7 | reported, where tickets are tracked, which models your agents think with, | |
| 8 | 8 | where code came from. Every integration is listed in one directory, by | |
| 9 | − | category, whether it works today or is still being built. | |
| 9 | + | category, whether it works today or is still being built. The directory | |
| 10 | + | is **Customize → Connectors** (see [Customize](/guides/customize/#connectors)), | |
| 11 | + | beside the MCP servers a workspace connects there. | |
| 10 | 12 | ||
| 11 | 13 | ## Workspace and personal | |
| 12 | 14 | ||
| ⋯ | |||
| 14 | 16 | ||
| 15 | 17 | | | Workspace integrations | Your integrations | | |
| 16 | 18 | | --- | --- | --- | | |
| 17 | − | | Where | The workspace's **Integrations**, at `g1t.sh/<workspace>/-/integrations` | **Your settings → Integrations**, at [`g1t.sh/settings/integrations`](https://g1t.sh/settings/integrations) | | |
| 19 | + | | Where | **Customize → Connectors**, at `g1t.sh/<workspace>/-/customize/connectors`, with each integration's setup page under `g1t.sh/<workspace>/-/integrations` | **Your settings → Integrations**, at [`g1t.sh/settings/integrations`](https://g1t.sh/settings/integrations) | | |
| 18 | 20 | | Who it is for | Everyone in that workspace, people and agents | Just you, in every workspace you belong to | | |
| 19 | 21 | | Who connects | Workspace owners. Members see what is connected. | You | | |
| 20 | 22 | | Examples | Model providers, Sentry, Jira, Linear, GitHub mirroring, webhooks | Signing in with GitHub, agents you connect through MCP, and soon your calendar | | |
| ⋯ | |||
| 26 | 28 | ||
| 27 | 29 | ## The directory | |
| 28 | 30 | ||
| 29 | − | Both pages are the same directory: | |
| 31 | + | Both pages are the same directory, the one **Customize → Connectors → | |
| 32 | + | Discover** shows for a workspace: | |
| 30 | 33 | ||
| 31 | 34 | - **Categories** down the side (along the top on a phone): Code & CI, | |
| 32 | 35 | Issues & projects, Chat & meetings, Calendar & email, Docs & knowledge, | |
| ⋯ | |||
| 43 | 46 | - **Available** can be connected now. Choose one to open its setup page. | |
| 44 | 47 | - **Soon** is being built. Each says what it will do, and **Ask for this** | |
| 45 | 48 | tells g1t you want it (below). | |
| 49 | + | - **Connect** on a tool that publishes a remote MCP server (Linear, Notion, | |
| 50 | + | Sentry, Stripe, Figma, Supabase, Cloudflare and more) connects it as a | |
| 51 | + | [connector](/guides/customize/#connectors): an owner signs in with the | |
| 52 | + | browser or pastes a key, g1t lists its tools, and they are given to | |
| 53 | + | agents with a level each. The integrations below have setup pages of | |
| 54 | + | their own. | |
| 46 | 55 | ||
| 47 | 56 | The tags on a card say what an integration lets g1t do: **Agents can | |
| 48 | 57 | read** (agents fetch what work refers to), **Opens issues**, **Writes | |
| ⋯ | |||
| 63 | 72 | `-/integrations/trackers`. GitHub, webhooks and the AI Gateway keep their | |
| 64 | 73 | own pages; the directory links to them. | |
| 65 | 74 | ||
| 75 | + | Tools that publish a remote MCP server are connected from Customize rather | |
| 76 | + | than from a setup page; see [connectors](/guides/customize/#connectors). | |
| 77 | + | ||
| 66 | 78 | Secrets are sealed when they are saved and never shown again, to anyone. | |
| 67 | 79 | A setup page shows the last four characters of a key, so you can tell keys | |
| 68 | 80 | apart. Agents never see a connection's secrets. | |
| ⋯ | |||
| 289 | 301 | -d '{"provider": "jira", "config": {"site": "https://acme.atlassian.net", "email": "dev@acme.com", "keys": ["TECH"]}, "secret": "<api token>"}' | |
| 290 | 302 | ``` | |
| 291 | 303 | ||
| 304 | + | Connectors (MCP servers) and their grants are the | |
| 305 | + | [`customize`](/guides/customize/#api) resource's, not the integrations'. | |
| 306 | + | ||
| 292 | 307 | `provider` is one of the [model providers](/guides/models/#from-the-api), | |
| 293 | 308 | or `sentry`, `datadog`, `webhook`, `jira` or `linear`. `config` takes `repo`, `assign`, `label`, | |
| 294 | 309 | `write_back`, `organization`, `site`, `email`, `keys`, `base_url`, | |
| 1 | − | --- | |
| 2 | − | title: Marketplace | |
| 3 | − | description: Add functionality to a workspace with extensions, and connect the tools your team already uses so agents can work with that data. Anyone browses the Marketplace; owners add things, and everyone else asks an owner. What each listing may do, where its data goes, and how installs, requests and the kill switch work. | |
| 4 | − | --- | |
| 5 | − | ||
| 6 | − | The Marketplace is where a workspace adds functionality g1t doesn't have | |
| 7 | − | built in, and connects the data it already keeps elsewhere so agents can | |
| 8 | − | use it. Code, Deployments, Chat, Agents and Artifacts come with every | |
| 9 | − | workspace and aren't listed. Two kinds of listing are: | |
| 10 | − | ||
| 11 | − | | Kind | What it adds | Status | | |
| 12 | − | | --- | --- | --- | | |
| 13 | − | | **Extensions** | Pages, data, cards and agent roles for what your team does besides code, such as email on your domain, support or recruiting. Some bridge a system you already run. | Coming: g1t's own are listed, and install from their first release | | |
| 14 | − | | **Integrations** | A connection to a tool you already use, which gives agents new abilities without adding pages. | Live for the integrations marked available; the rest are coming | | |
| 15 | − | ||
| 16 | − | Agents aren't in the Marketplace. To add one, start from a | |
| 17 | − | [template](/guides/agents/#role-templates) in Agents. | |
| 18 | − | ||
| 19 | − | Open it from **Apps** at the foot of the rail (the launcher's | |
| 20 | − | **Marketplace** link, or **Browse the Marketplace** on the Apps page), from | |
| 21 | − | **More** on a phone, or with <kbd>Ctrl</kbd> <kbd>K</kbd> and | |
| 22 | − | *Marketplace*. Its address is `g1t.sh/<workspace>/-/marketplace`. The | |
| 23 | − | Marketplace isn't in the rail itself. | |
| 24 | − | ||
| 25 | − | ## Who builds what, and whether you can add it | |
| 26 | − | ||
| 27 | − | Every listing, on every card, page and request, carries two labels: its | |
| 28 | − | **tier**, which says who stands behind it, and its **availability**, | |
| 29 | − | which says whether it can be added here, now. Hover or focus a label to | |
| 30 | − | read what it means. **Discover** explains both under **Who builds what**. | |
| 31 | − | ||
| 32 | − | | Tier | Colour | Who stands behind it | | |
| 33 | − | | --- | --- | --- | | |
| 34 | − | | **Official** | Lavender | g1t. Built and supported by g1t. Every integration is Official, as are g1t's own extensions. | | |
| 35 | − | | **Verified** | Green | A reviewed publisher. Its code and the scopes it asks for are checked before it is listed. | | |
| 36 | − | | **Community** | Amber | Anyone. Its pages run sandboxed on the user-content domain (g1tusercontent.com on g1t.sh), and its server code stays off until that sandbox is hardened. | | |
| 37 | − | | **Internal** | Blue | Your own people and agents. Promoted for your workspace only. | | |
| 38 | − | ||
| 39 | − | Today everything listed is Official. The **Extensions** and | |
| 40 | − | **Integrations** tabs still show a section for each tier, so a tier | |
| 41 | − | with nothing in it says so: *No verified publishers yet*, *No community | |
| 42 | − | extensions yet*, *Nothing built in this workspace yet*. | |
| 43 | − | ||
| 44 | − | | Availability | What it means | | |
| 45 | − | | --- | --- | | |
| 46 | − | | **Available** | It can be added now. Owners add it for everyone; anyone else asks an owner with **Request**. | | |
| 47 | − | | **Connected** or **Installed** | This workspace has it. An installed extension that was switched off says **Switched off**. | | |
| 48 | − | | **Soon** | Planned, not built yet. Nobody can add it until it is released, so its card is drawn dashed and muted, with nothing to press. Its page still shows what it will do. | | |
| 49 | − | | **Not available here** | This workspace or this g1t lacks something it needs, and the listing says what. For example, GitHub needs a GitHub App, which a self-hosted g1t adds before anyone can connect it. | | |
| 50 | − | ||
| 51 | − | ### Filter by tier and availability | |
| 52 | − | ||
| 53 | − | The **Extensions** and **Integrations** tabs have two rows of filters, | |
| 54 | − | **Who builds it** and **Availability**, each option with how many | |
| 55 | − | listings it has. A filter is kept in the address, such as | |
| 56 | − | `/<workspace>/-/marketplace/integrations?tier=official&availability=soon`, | |
| 57 | − | so a filtered list can be shared. | |
| 58 | − | ||
| 59 | − | ## Who can add things | |
| 60 | − | ||
| 61 | − | Every member of a workspace can browse the Marketplace. Only its | |
| 62 | − | **owners** install extensions and connect integrations, because each of | |
| 63 | − | them can spend the workspace's money or reach its data. Everyone else sees | |
| 64 | − | **Request** where an owner sees **Install** or **Connect**, and asks. | |
| 65 | − | ||
| 66 | − | ## The Marketplace's pages | |
| 67 | − | ||
| 68 | − | | Tab | What it shows | | |
| 69 | − | | --- | --- | | |
| 70 | − | | **Discover** | Featured extensions, who builds what, integrations with the connected ones first, starter kits, and connected systems. | | |
| 71 | − | | **Extensions** | Every extension, by tier: g1t's own (connected systems apart), then Verified, Community and Internal. Filters by tier and availability, and how extensions are shared. | | |
| 72 | − | | **Integrations** | Every integration, by tier. Under Official: connected ones, the ones you can connect now, any not available here, the ones each person connects for themselves, and the ones coming. Search by name, by what it does, or by a word such as *tracker*, and filter by tier and availability. | | |
| 73 | − | | **Requests** | For owners, every request members made, waiting first; for anyone else, **Your requests**. The tab shows how many are waiting. | | |
| 74 | − | ||
| 75 | − | ## Extensions | |
| 76 | − | ||
| 77 | − | An extension adds pages to its own sidebar, data, cards in chat, tools for | |
| 78 | − | agents and agent roles. g1t's own are listed now, marked **Soon**, so you | |
| 79 | − | can see what each will add and what it will be able to do. None can be | |
| 80 | − | installed before its first release. | |
| 81 | − | ||
| 82 | − | | Extension | What it adds | | |
| 83 | − | | --- | --- | | |
| 84 | − | | **Mail** | Email on your own domain, run by g1t. Shared inboxes such as support@ work like channels: agents sort and draft, and sending needs approval or a rule you set. | | |
| 85 | − | | **Support** | Conversations, escalations, macros and a knowledge base. Customer cards in chat, and bug reports become issues in Code. | | |
| 86 | − | | **CRM** | Accounts, deals by stage and a forecast. Agents log calls and draft follow-ups for a person to send. | | |
| 87 | − | | **Recruiting** | Openings, candidates, scorecards and interview loops. Agents screen; people decide. | | |
| 88 | − | | **On-call** | Rotations, pages and incidents, with who is on call now. | | |
| 89 | − | ||
| 90 | − | ### Connected systems | |
| 91 | − | ||
| 92 | − | A connected system is an extension that bridges a system your team already | |
| 93 | − | runs, so agents work across it and g1t together. Its page says *Data leaves | |
| 94 | − | g1t to* the system you connect. | |
| 95 | − | ||
| 96 | − | | Extension | What it bridges | | |
| 97 | − | | --- | --- | | |
| 98 | − | | **Helpdesk bridge** | Tickets from your helpdesk, with replies drafted for a person to send and bug reports linked to issues in Code. | | |
| 99 | − | | **CRM bridge** | Accounts and deals from your CRM, in g1t and in chat. | | |
| 100 | − | | **ERP bridge** | Orders, invoices and stock from your ERP. Anything that changes money or stock waits for a person's approval. | | |
| 101 | − | ||
| 102 | − | ### Starter kits | |
| 103 | − | ||
| 104 | − | A starter kit is a set of extensions for one kind of team, installed | |
| 105 | − | together once each of them is published: **Customer team** (Mail, Support, | |
| 106 | − | CRM), **Engineering extras** (On-call, Helpdesk bridge) and **People and | |
| 107 | − | operations** (Recruiting, ERP bridge). They are on **Discover**, marked | |
| 108 | − | **Soon** until then. | |
| 109 | − | ||
| 110 | − | ### What an extension's page tells you | |
| 111 | − | ||
| 112 | − | Its header says its tier, who publishes it, its availability and its | |
| 113 | − | category, such as *Official · by g1t · Soon · Customers*. Before anything | |
| 114 | − | is installed, its page lists: | |
| 115 | − | ||
| 116 | − | - **What it adds**: its pages, the cards it shows in chat, the agent roles | |
| 117 | − | it brings, the tools agents get, and the notifications it sends. | |
| 118 | − | - **It will be able to**: what it may do, in plain words, and the scopes | |
| 119 | − | its token asks for, each described. | |
| 120 | − | - **Where it runs, and where data goes**: on g1t, or on its publisher's | |
| 121 | − | servers, and everywhere outside g1t its data goes, as *Data leaves g1t to | |
| 122 | − | api.example.com*, or *to the CRM you connect* for a connected system. | |
| 123 | − | *Its data stays in g1t* means it sends nothing elsewhere. | |
| 124 | − | - **Version** and **Source**: the release it installs, and the repository | |
| 125 | − | and tag it was published from. | |
| 126 | − | - **Price**: every listing is free. What its agents do is billed at what | |
| 127 | − | it costs, like any agent's work. | |
| 128 | − | ||
| 129 | − | ### How extensions are shared | |
| 130 | − | ||
| 131 | − | An extension is a public repository on g1t with a manifest, | |
| 132 | − | `.g1t/extension.json`. Tagging a release (`v1.2.0`) publishes that version. | |
| 133 | − | An install keeps the version it was installed at; updates are offered to | |
| 134 | − | owners, never forced. | |
| 135 | − | ||
| 136 | − | | Manifest field | What it says | | |
| 137 | − | | --- | --- | | |
| 138 | − | | `id`, `name`, `tagline`, `description`, `category` | What it is called and what it does. | | |
| 139 | − | | `publisher` | Who publishes it, and its tier. | | |
| 140 | − | | `runtime` | `hosted` (runs on g1t) or `connected` (runs on the publisher's servers). | | |
| 141 | − | | `scopes` | The [scopes](/guides/authentication/#scopes) its token asks for. | | |
| 142 | − | | `permissions` | What it may do, in plain words, for the install screen. | | |
| 143 | − | | `domains` | Every host outside g1t its data goes to. A connected extension must name the ones it runs on. | | |
| 144 | − | | `bridges` | Optional. The system it connects to, in words, such as `the CRM you connect`, when its data goes wherever the workspace points it. | | |
| 145 | − | | `ui.entry` | Its page, loaded in a sandboxed frame from the user-content domain, which reaches g1t only through what it was allowed. | | |
| 146 | − | | `adds` | Its `pages`, `cards`, `agent_roles`, `tools` and `notifications`. | | |
| 147 | − | | `pricing` | `null`: listings are free. | | |
| 148 | − | ||
| 149 | − | ### Installed extensions | |
| 150 | − | ||
| 151 | − | Once installed, an owner can, from the extension's page: | |
| 152 | − | ||
| 153 | − | - **Switch off**: the kill switch. Its token stops working and its page | |
| 154 | − | stops loading at once, until it is switched on again. | |
| 155 | − | - Cap what it spends in a month. Without a cap, the workspace's | |
| 156 | − | [spend limit](/guides/usage-and-billing/) applies. | |
| 157 | − | - **Uninstall** it. The record of who installed and removed it stays. | |
| 158 | − | ||
| 159 | − | Installing, switching on or off, setting a budget and uninstalling are in | |
| 160 | − | the [audit log](/guides/audit-log/). | |
| 161 | − | ||
| 162 | − | ## Integrations | |
| 163 | − | ||
| 164 | − | Integrations are how agents reach your data: each one says, in plain words, | |
| 165 | − | what it lets agents do, such as *Agents can read* or *Opens issues*. The | |
| 166 | − | Marketplace lists every integration in the | |
| 167 | − | [integrations directory](/guides/integrations/) that a workspace can | |
| 168 | − | connect, with whether yours has. **Connect** opens its setup page; | |
| 169 | − | **Manage** opens it once it is connected. **Needs attention** means a | |
| 170 | − | connection's last check failed: hover it to see why. | |
| 171 | − | ||
| 172 | − | Each integration has its own page, | |
| 173 | − | `/<workspace>/-/marketplace/integrations/<id>`, opened from its card. Its | |
| 174 | − | header says its tier, publisher, availability and category, and **What | |
| 175 | − | it lets agents and people do** sets out, for each way it is connected | |
| 176 | − | (for the whole workspace, or for each person), what works **Today** and | |
| 177 | − | what is **Soon**. Linear, for example, lets agents read and write back | |
| 178 | − | for a workspace today, while each person's Linear inbox is Soon. When an | |
| 179 | − | integration is not available here, its page says why. | |
| 180 | − | ||
| 181 | − | Once an integration is connected, what agents can do through it is set | |
| 182 | − | per agent, action by action, on the agent's **Abilities** tab: read on | |
| 183 | − | its own, comment only after asking, and so on, and whether it acts as the | |
| 184 | − | workspace's connection or the asking person's own. When an agent needs an | |
| 185 | − | integration that isn't connected, it posts a **Request** card in the | |
| 186 | − | conversation, which opens the same request as **Request** here. See | |
| 187 | − | [agent abilities](/guides/agent-abilities/). | |
| 188 | − | ||
| 189 | − | Some integrations each person connects for themselves, such as a GitHub | |
| 190 | − | account or an MCP client. They are listed under **Connected by each | |
| 191 | − | person**, and **Connect yours** opens your own | |
| 192 | − | [settings](/guides/integrations/#workspace-and-personal) for them. Agents | |
| 193 | − | use a personal connection only when that person asks. Those that aren't | |
| 194 | − | available yet, such as a calendar or a mailbox, are listed among the | |
| 195 | − | coming ones. | |
| 196 | − | ||
| 197 | − | ## Ask an owner to add something | |
| 198 | − | ||
| 199 | − | 1. Choose **Request** on an extension or an integration. | |
| 200 | − | 2. Check what you are asking for: the dialog shows its tier, who | |
| 201 | − | publishes it, and that it is available. | |
| 202 | − | 3. Say why you want it, if you like, and choose **Send request**. | |
| 203 | − | ||
| 204 | − | Every owner is notified. The button then reads **Requested**, and **Your | |
| 205 | − | requests** lists it until an owner answers; you are notified when one does. | |
| 206 | − | You can't ask twice for the same thing while a request is waiting, and you | |
| 207 | − | can have 20 waiting at once. | |
| 208 | − | ||
| 209 | − | To answer requests as an owner, open **Marketplace → Requests**: | |
| 210 | − | ||
| 211 | − | | | | | |
| 212 | − | | --- | --- | | |
| 213 | − | | **Install** or **Connect** | Opens where it is added. Installing an extension answers every request for it by itself. | | |
| 214 | − | | **Mark added** | After you connected the integration, or added it another way. | | |
| 215 | − | | **Turn down** | The person who asked is told. They can ask again. | | |
| 216 | − | ||
| 217 | − | Answered requests stay listed for 30 days. | |
| 218 | − | ||
| 219 | − | ## Apps | |
| 220 | − | ||
| 221 | − | What the workspace added from the Marketplace that you can use is under | |
| 222 | − | **Apps**: today, the integrations it connected. Each shows its tier, as | |
| 223 | − | in the Marketplace. Pin the ones you want to your rail. See [Apps](/guides/workspaces/#apps). |
| 126 | 126 | | `g1t://<workspace>/-/chat`, `…/-/chat/<channel>`, `…/-/chat/dm/<id>` | Chat, or the conversation, in that workspace | | |
| 127 | 127 | | `g1t://<owner>/<repo>` | The repository | | |
| 128 | 128 | | `g1t://<owner>/<repo>/pull/<number>`, `…/issues/<number>` | The pull request or issue | | |
| 129 | − | | `g1t://<workspace>/-/marketplace…`, `…/-/agents/skills` | Customize | | |
| 129 | + | | `g1t://<workspace>/-/customize…`, `…/-/agents/skills` | [Customize](/guides/customize/). The old `…/-/marketplace…` links open it too | | |
| 130 | 130 | ||
| 131 | 131 | Any other page opens on the site, in the browser. | |
| 132 | 132 |
| 213 | 213 | ||
| 214 | 214 | A project can have its own setting, or follow the workspace's. | |
| 215 | 215 | ||
| 216 | + | ## Plugins and skills on runners | |
| 217 | + | ||
| 218 | + | When g1t's work runs Claude Code on a runner, the job gets what the | |
| 219 | + | workspace set up in [Customize](/guides/customize/), as the job's agent | |
| 220 | + | would have it. Before the first step, the runner reads the workspace's | |
| 221 | + | bundle with the job's short-lived credential, once per job: | |
| 222 | + | ||
| 223 | + | | In the bundle | What the runner does | | |
| 224 | + | | --- | --- | | |
| 225 | + | | Installed plugins that are switched on, each with where to fetch it and the commit it was installed at | Fetches each at that commit and starts Claude Code with it as a plugin directory, so its skills, agents, commands, hooks, LSP servers and `bin/` are all there | | |
| 226 | + | | The library's own skills that reach the agent, as files | Writes each skill's folder where Claude Code reads skills. A plugin's skills come with the plugin itself | | |
| 227 | + | | The connectors that reach the agent and are connected, with the headers that sign them in | Merges them into Claude Code's MCP configuration | | |
| 228 | + | ||
| 229 | + | The bundle carries the connectors' sign-ins, so only a job's credential | |
| 230 | + | reads it: `GET /workspaces/{workspace}/customize/bundle`, scope | |
| 231 | + | `agents:run`. See [what a run gets](/guides/customize/#what-a-run-gets). | |
| 232 | + | ||
| 216 | 233 | ## Billing | |
| 217 | 234 | ||
| 218 | 235 | Time on your runners is free. Each job's minutes go on |
| 65 | 65 | | `services/chat` | Runs, with its Durable Objects; custom emoji are kept with avatars | | |
| 66 | 66 | | `services/artifacts` | Runs: [artifacts](/guides/artifacts/) and their spaces, with their live rooms. Files people add are kept in the `g1t-docs-files` bucket. Search matches words, not meaning, because there is no embedding model. | | |
| 67 | 67 | | `services/notify` | Runs. Notifications are live in open tabs; browser push needs a VAPID key pair, which an installation does not make. Push to the phone app goes through Expo and needs nothing set; `PHONE_PUSH=off` sends phones nothing ([the phone app](/guides/self-hosting/#the-phone-app)). | | |
| 68 | − | | `services/agents` | Runs, but replies need the model proxy, which is off, so an agent answers with a short apology | | |
| 68 | + | | `services/agents` | Runs, but replies need the model proxy, which is off, so an agent answers with a short apology. [Customize](/guides/customize/) works: marketplaces and plugins are read from GitHub and from repositories here, and connectors' keys and sign-ins are sealed under `CONNECTORS_KEY`, one of the keys `start.sh` makes. `GITHUB_TOKEN` is optional on it, for a higher rate limit when reading GitHub. | | |
| 69 | 69 | | `services/billing` | Runs with nothing charged and no usage limit | | |
| 70 | 70 | | `services/integrations` | Runs | | |
| 71 | 71 | | `services/webhooks` | Runs, retries included | |
| 267 | 267 | the `g1t-data` volume) on first start. What the app can do, and what comes | |
| 268 | 268 | across from GitHub, is in [GitHub](/guides/github/). | |
| 269 | 269 | ||
| 270 | + | ## Customize | |
| 271 | + | ||
| 272 | + | [Customize](/guides/customize/) works on a g1t you run yourself: | |
| 273 | + | marketplaces and plugins are read from public repositories on GitHub and | |
| 274 | + | from repositories on your installation, and connectors sign in to MCP | |
| 275 | + | servers from your installation's address. The agents service's | |
| 276 | + | `CONNECTORS_KEY` seals connectors' keys and OAuth tokens; `start.sh` makes | |
| 277 | + | it on first start, in `keys.env` beside the other sealing keys, and adds | |
| 278 | + | it to a `keys.env` from before it existed. Without it, open MCP servers | |
| 279 | + | work and nothing that signs in can be kept. | |
| 280 | + | ||
| 270 | 281 | ## Where your data lives | |
| 271 | 282 | ||
| 272 | 283 | | Volume | Holds | | |
| ⋯ | |||
| 285 | 296 | docker compose -f deploy/self-host/docker-compose.yml start | |
| 286 | 297 | ``` | |
| 287 | 298 | ||
| 288 | − | Keep `keys.env` with the backup. Without it, saved webhook, integration and | |
| 289 | − | Actions secrets cannot be opened. | |
| 299 | + | Keep `keys.env` with the backup. Without it, saved webhook, integration, | |
| 300 | + | connector and Actions secrets cannot be opened. | |
| 290 | 301 | ||
| 291 | 302 | ## Upgrade | |
| 292 | 303 | ||
| 49 | 49 | | **Models** | Each model's share. | | |
| 50 | 50 | | **Kind of work** | Chat replies, sessions, routines, helping colleagues and subagents. | | |
| 51 | 51 | | **Products** | Every product at price, from Usage: Agent, Sandboxes, AI Gateway, Deployments, Git & storage, Packages, Security & quality and Search. Workspace view only. | | |
| 52 | − | | **Extensions** | Coming: what each installed extension runs, once extensions can be installed. | | |
| 53 | 52 | ||
| 54 | 53 | A slice is part of the page's address (`?by=channel`), so you can share it. | |
| 55 | 54 | ||
| 55 | + | Plugins installed from [Customize](/guides/customize/#plugins) are free | |
| 56 | + | and have no slice of their own. What an agent hired from a plugin's | |
| 57 | + | template does, and what any agent does with a plugin's skills and | |
| 58 | + | connectors, is billed as that agent's work and shows under **Agents**. | |
| 59 | + | ||
| 56 | 60 | ## Spend less, keep quality | |
| 57 | 61 | ||
| 58 | 62 | Every week, g1t checks each agent's finished sessions and asks one |
| 637 | 637 | ||
| 638 | 638 | ### Apps | |
| 639 | 639 | ||
| 640 | − | Apps are what the workspace added from the [Marketplace](/guides/marketplace/) | |
| 641 | − | that you can use: today, the integrations it connected, such as Sentry or | |
| 642 | − | GitHub, each opening its own page; installed extensions join them once | |
| 643 | − | extensions are published. An app you can't use shows **Request access**. | |
| 640 | + | Apps are what the workspace connected in [Customize](/guides/customize/) | |
| 641 | + | that you can use: the integrations it connected, such as Sentry or GitHub, | |
| 642 | + | each opening its own page. An app you can't use shows **Request access**. | |
| 644 | 643 | The built-in apps' own pages are in their sidebars, not in Apps: Code's has | |
| 645 | 644 | **Projects**, **Security** and **Packages**; Agents' has **Templates**, | |
| 646 | 645 | **Context** and **Memory**; People's has **Everyone**, **Teams** and **Org | |
| ⋯ | |||
| 656 | 655 | 3. Select the pin on its tile. Select it again to unpin it. | |
| 657 | 656 | ||
| 658 | 657 | When the workspace hasn't added anything yet, the launcher and the Apps | |
| 659 | − | page say so and lead to the Marketplace. The launcher's **Marketplace** | |
| 660 | − | link always does. | |
| 658 | + | page say so and lead to Customize. The launcher's **Customize** link | |
| 659 | + | always does, as does <kbd>Ctrl</kbd> <kbd>K</kbd> and *Customize*. | |
| 661 | 660 | ||
| 662 | 661 | Your pins are yours alone and each workspace has its own. They are saved | |
| 663 | 662 | to your account, so your rail is the same on every browser and device you | |
| ⋯ | |||
| 767 | 766 | ||
| 768 | 767 | | | What it does | | |
| 769 | 768 | | --- | --- | | |
| 770 | − | | **The bar along the bottom** | **Home**, **Chat**, **Notifications**, **Agents** and **Code** (for members with Code access), each with what is unread, and **More**. It runs flat along the bottom edge, as the rail stands beside the page on a computer, and the page fills the screen above it. The app you are in is marked as on the rail. It steps aside while the keyboard is up and inside a conversation. | | |
| 771 | − | | **More** | A panel above the bar with **All apps**, the [Marketplace](/guides/marketplace/), your pinned apps, **Artifacts**, **People**, **Workspace**, and **You and help**: your status, profile and settings, [appearance](#appearance), the documentation, support, status, the keyboard's shortcuts and signing out. | | |
| 769 | + | | **The bar along the bottom** | **Home**, **Chat**, **Notifications**, **Code** (for members with Code access) and **Agents**, each with what is unread, and **More**. It runs flat along the bottom edge, as the rail stands beside the page on a computer, and the page fills the screen above it. The app you are in is marked as on the rail. It steps aside while the keyboard is up and inside a conversation. | | |
| 770 | + | | **More** | A panel above the bar with **All apps**, [Customize](/guides/customize/), your pinned apps, **Artifacts**, **People**, **Workspace**, and **You and help**: your status, profile and settings, [appearance](#appearance), the documentation, support, status, the keyboard's shortcuts and signing out. | | |
| 772 | 771 | | **The sidebar button**, at the left of the page's header | Opens the sidebar of the app you are in from the left, most of the screen wide: the same lists and links as on a computer. Tap outside it, or open a page, and it closes. | | |
| 773 | 772 | | **The tab you are already on** | Tap it again to open that app's sidebar too. | | |
| 774 | 773 | | **The workspace's name** in the page's header | Switches workspace, or opens your profile or settings. | | |
| 85 | 85 | | [Acting for the asker](/guides/agent-access/) | Agents act with the access of the person who asked, and answer with only what their audience may see. | <Status is="live" /> | | |
| 86 | 86 | | [Memory](/guides/agent-memory/), [sessions](/guides/agent-sessions/) and [routines](/guides/agent-routines/) | What an agent keeps, every run with its steps and cost, and work on a schedule. | <Status is="live" /> | | |
| 87 | 87 | | [Agent templates](/guides/agents/#role-templates) | Starting points for a new agent in Agents, each with responsibilities, a voice and the helpers it works with, configured once you start one. | <Status is="live" /> | | |
| 88 | − | | More specialists | Templates that bring their own skills, tools and the runner they prefer. | <Status is="coming" /> | | |
| 88 | + | | [Agents from plugins](/guides/customize/#plugins) | Subagents a plugin brings, listed under Templates → From plugins and hired like any template. | <Status is="live" /> | | |
| 89 | 89 | | [Foundational skills](/guides/agent-skills/) | Every agent makes PDFs, Word documents and spreadsheets, writes reports with sources, charts data, reviews code and summarizes threads, with the tools it already has. Owners turn skills off per agent. | <Status is="live" /> | | |
| 90 | − | | [Skill library](/guides/agent-skills/#the-skill-library) | Your own skills in the open SKILL.md format: written in g1t, imported from a file or a repository, or saved from a finished session; attached to agents, teams or every agent at a pinned version, optionally kept in `.g1t/skills/` in a repository. | <Status is="live" /> | | |
| 91 | − | | Web research, Marketplace skills, skill scripts | Research on the open web, set per team; skills that extensions bring; scripts run on an agent's own computer. | <Status is="coming" /> | | |
| 90 | + | | [Skill library](/guides/agent-skills/#the-skill-library) | Your own skills in the open SKILL.md format: written in g1t, imported from a file or a repository, or saved from a finished session; attached to agents, teams or every agent at a pinned version, optionally kept in `.claude/skills/` in a repository. | <Status is="live" /> | | |
| 91 | + | | [Plugin skills](/guides/customize/#skills) | Every skill published in a marketplace, added to the library in a click as `plugin:skill` and made available to every agent, a team or one. | <Status is="live" /> | | |
| 92 | + | | Web research, skill scripts | Research on the open web, set per team; scripts run on an agent's own computer. | <Status is="coming" /> | | |
| 92 | 93 | | Agents on runners | Every agent's machine is a runner: g1t's, one of yours, or your desktop, with sessions that last between tasks. | <Status is="coming" /> | | |
| 93 | 94 | | [Agents in your chat app](/guides/chat-app/) | The same agents, answering in the chat app your team already uses. | <Status is="coming" /> | | |
| 94 | 95 | ||
| ⋯ | |||
| 116 | 117 | | --- | --- | --- | | |
| 117 | 118 | | [Integrations](/guides/integrations/) | The GitHub App, Sentry, Datadog, Jira, Linear and alerts. | <Status is="live" /> | | |
| 118 | 119 | | [API](/reference/api/), [MCP](/reference/mcp/) and [webhooks](/guides/webhooks/) | Everything as a REST endpoint and an MCP tool, and a webhook for every event. | <Status is="live" /> | | |
| 119 | − | | [Marketplace](/guides/marketplace/) | Extensions that add functionality, and integrations that connect your data for agents, added by owners; members ask for what they need. | <Status is="live" /> | | |
| 120 | − | | Extensions | Pages, cards, tools and agent roles shared from public repositories, installed by an owner after reading their permissions and where their data goes. Mail, Support, CRM, Recruiting, On-call and bridges to a helpdesk, CRM or ERP are listed. | <Status is="coming" /> | | |
| 120 | + | | [Customize](/guides/customize/) | Skills, Connectors and Plugins, each with Yours and Discover: marketplaces, plugins, skills, subagents and MCP servers in the formats Claude Code reads, added by owners; members ask for what they need. | <Status is="live" /> | | |
| 121 | + | | [Connectors](/guides/customize/#connectors) | Remote MCP servers from the directory, a plugin or an address, signed in once with the browser or a key and given to every agent, a team or one, with a level per tool. | <Status is="live" /> | | |
| 122 | + | | g1t's own plugins | Mail, Support, CRM, Recruiting, On-call and bridges to a helpdesk, CRM or ERP, listed in the `g1t` marketplace and installable from their first release. | <Status is="coming" /> | | |
| 121 | 123 | | More integrations | Drive, Gmail, Calendar, Slack and Microsoft 365, each listing what it lets agents do. | <Status is="coming" /> | | |
| 122 | 124 | | Mail | Email on your own domain, with shared inboxes that agents work in. | <Status is="coming" /> | | |
| 123 | 125 | ||
| 10 | 10 | action is the same operation as a route of the [REST API](/reference/api/), | |
| 11 | 11 | with the same inputs, permissions and results, so the two always agree. | |
| 12 | 12 | ||
| 13 | + | <!-- TODO(customize): the `customize` tool (marketplaces, Discover, plugins and installs, connectors with sign-ins and grants, and the runner bundle; scopes workspace:read, workspace:admin and agents:run) is documented with the API change that adds it. The guide is /guides/customize/#api. --> | |
| 14 | + | ||
| 13 | 15 | ## Connect | |
| 14 | 16 | ||
| 15 | 17 | To connect Claude Code, Codex, OpenCode, Cursor or another client, see |
Comments
Sign in to comment.