Skip to content

Where people and agents ship software together. The open-source git platform for the whole job: issues, agents, checks and deploys to the edge.

g1t.sh

Commit

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.

syntaqxcommitted Parent48b2816Browse files
19 files+684−2870/19 viewed
+2−1
1313 redirects: {
1414 '/guides/g1t-agents/': '/guides/working-with-g1t/',
1515 '/guides/inbox/': '/guides/notifications/',
16+ '/guides/marketplace/': '/guides/customize/',
1617 '/guides/today/': '/guides/home/',
1718 },
1819 integrations: [
149150 {
150151 label: 'Connect your tools',
151152 items: [
152− { label: 'Marketplace', slug: 'guides/marketplace' },
153+ { label: 'Customize', slug: 'guides/customize' },
153154 { label: 'Integrations', slug: 'guides/integrations' },
154155 { label: 'Model providers', slug: 'guides/models' },
155156 { label: 'AI Gateway', slug: 'guides/ai-gateway' },
+33−17
11 ---
22 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.
44 ---
55
66 Every agent has an **Abilities** tab on its page, after **Skills**. It
102102
103103 An integration that gives agents abilities but isn't connected is listed
104104 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.
107107
108108 #### Whose connection
109109
119119 Sentry can't be connected per person yet, so for them the choice is the
120120 workspace's connection today.
121121
122−### MCP servers
122+### Connectors
123+
124+MCP servers reach an agent in two ways, and the tab lists both under
125+**Connectors**:
123126
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:
127140
128141 - a tool the server marks as read-only is a **read**, Alone by default;
129142 - any other tool, including one the server says nothing about, counts as
130143 a **write outside g1t**, Ask first by default.
131144
132145 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.
138151
139152 ## Ask first, in the conversation
140153
158171 the agent doesn't have, the agent says so plainly and posts a **Request**
159172 card:
160173
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;
164177 - for an ability, **Ask the owners** notifies every owner with a link to
165178 the agent's Abilities tab, and **Open Abilities** goes there.
166179
195208 with `abilities: { settings }` replaces its settings, and is a new
196209 version like any change. MCP servers are added and removed with the
197210 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`.
199215
200216 The computer itself has routes of its own under the agent:
201217 `GET /workspaces/{workspace}/agents/{agent}/computer` for its state and
208224
209225 - [Agents](/guides/agents/): hiring, changing and running agents.
210226 - [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.
212228 - [What agents can do for whom](/guides/agent-access/): the access every ability runs within.
+26−8
151151
152152 ## The skill library
153153
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.
158161
159162 A skill does nothing until it is attached. Open it and choose **Attach**:
160163
182185
183186 Every change is in the workspace's audit log under `agents/skills/<name>`.
184187
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+
185202 ## The skill format
186203
187204 A skill is a folder in the open SKILL.md format, the same one other agent
324341 1. Open **Agents → Skills**. Under **Keep skills in a repository**, enter
325342 the repository as `workspace/name` and choose **Link repository**.
326343 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.
330349 3. Every push to the default branch that changes a folder publishes a new
331350 version of that skill and moves all its attachments: the repository's
332351 review is the review. **Read it again** reads it on demand.
367386
368387 | What | Status |
369388 | --- | --- |
370−| Skills from the [Marketplace](/guides/marketplace/): an extension's skills, added in one step | Coming |
371389 | Running a skill's scripts on the agent's own computer | Coming |
372390 | Writing library edits back to the linked repository | Coming |
+23−11
100100 | In the draft | What it means |
101101 | --- | --- |
102102 | **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. |
104104 | **Routines that would suit it** | Set them up on its **Routines** tab once it exists. Personal agents can't run routines yet. |
105105 | **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. |
106106
259259 high-volume intake and summaries never run on the most capable one. Change
260260 either if your team works differently.
261261
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+
262273 ## Title and responsibilities
263274
264275 A role is broad on purpose. You hire Margo into QA, not into "review pull
794805 | Edit docs | Alone, or as a suggestion | As a suggestion |
795806
796807 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
800811 [agent abilities](/guides/agent-abilities/).
801812
802813 An agent also never does more for someone than that person could do
858869 | --- | --- |
859870 | **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/). |
860871 | **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/). |
862873 | **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. |
863874 | **Memory** | What it remembers, by scope, with where each fact came from. Pin, correct or forget facts. See [agent memory](/guides/agent-memory/). |
864875 | **Routines** | Work it does on a schedule or when something happens. See [routines](/guides/agent-routines/). |
943954 and agree in a visible thread when their work would overlap.
944955 <Soon />
945956 </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/).
951962 <Soon />
952963 </Card>
953964 </CardGrid>
956967
957968 - [Chat](/guides/chat/): channels, DMs, threads and mentions.
958969 - [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.
960972 - [What agents can do for whom](/guides/agent-access/): access, audiences
961973 and requests from people who don't work on code.
962974 - [Model providers](/guides/models/): connect your own.
+5−0
3131 will use g1t's tools. [MCP tools](/reference/mcp/) lists every one. The
3232 agent sees only the tools and actions its access allows.
3333
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+
3439 ### With a token instead
3540
3641 To skip the browser, for a script or a machine without one, put an
+8−0
239239 for an outside collaborator is told the project's own memory, never the
240240 workspace's, and names only the projects around it that they can read.
241241
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+
242250 ## Building it for a workspace
243251
244252 The first time anyone opens a workspace's Context page, g1t builds its hub:
+511−0
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.
+3−4
107107 1. Make sure your GitHub account is linked: **Connect GitHub** on the import
108108 page, or **Link GitHub** in [Settings → GitHub](https://g1t.sh/settings/github).
109109 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**.
112111 3. Under **Already installed on GitHub**, choose **Add to** the workspace
113112 beside the GitHub account or organization.
114113
115114 Only a workspace owner can add one, and only an installation your own
116115 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**.
119118
120119 If GitHub sends you to g1t after an installation that did not start from
121120 g1t, g1t asks which of the workspaces you own to add it to. It is the same
+2−2
3131 | --- | --- |
3232 | 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 |
3333 | 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) |
3535 | Notifications | An unread notification in this workspace that is a warning (someone or something is waiting) or a failure |
3636 | Chat | A conversation that mentions you, or a direct message you haven't read. Muted conversations are left out |
3737
220220 ### Decisions
221221
222222 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.
224224 Memories still waiting to be kept are left out. With none, the card is not
225225 shown.
226226
+18−3
66 g1t connects to the tools your work already lives in: where errors are
77 reported, where tickets are tracked, which models your agents think with,
88 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.
1012
1113 ## Workspace and personal
1214
1416
1517 | | Workspace integrations | Your integrations |
1618 | --- | --- | --- |
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) |
1820 | Who it is for | Everyone in that workspace, people and agents | Just you, in every workspace you belong to |
1921 | Who connects | Workspace owners. Members see what is connected. | You |
2022 | Examples | Model providers, Sentry, Jira, Linear, GitHub mirroring, webhooks | Signing in with GitHub, agents you connect through MCP, and soon your calendar |
2628
2729 ## The directory
2830
29−Both pages are the same directory:
31+Both pages are the same directory, the one **Customize → Connectors →
32+Discover** shows for a workspace:
3033
3134 - **Categories** down the side (along the top on a phone): Code & CI,
3235 Issues & projects, Chat & meetings, Calendar & email, Docs & knowledge,
4346 - **Available** can be connected now. Choose one to open its setup page.
4447 - **Soon** is being built. Each says what it will do, and **Ask for this**
4548 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.
4655
4756 The tags on a card say what an integration lets g1t do: **Agents can
4857 read** (agents fetch what work refers to), **Opens issues**, **Writes
6372 `-/integrations/trackers`. GitHub, webhooks and the AI Gateway keep their
6473 own pages; the directory links to them.
6574
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+
6678 Secrets are sealed when they are saved and never shown again, to anyone.
6779 A setup page shows the last four characters of a key, so you can tell keys
6880 apart. Agents never see a connection's secrets.
289301 -d '{"provider": "jira", "config": {"site": "https://acme.atlassian.net", "email": "dev@acme.com", "keys": ["TECH"]}, "secret": "<api token>"}'
290302 ```
291303
304+Connectors (MCP servers) and their grants are the
305+[`customize`](/guides/customize/#api) resource's, not the integrations'.
306+
292307 `provider` is one of the [model providers](/guides/models/#from-the-api),
293308 or `sentry`, `datadog`, `webhook`, `jira` or `linear`. `config` takes `repo`, `assign`, `label`,
294309 `write_back`, `organization`, `site`, `email`, `keys`, `base_url`,
+0−223
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).
+1−1
126126 | `g1t://<workspace>/-/chat`, `…/-/chat/<channel>`, `…/-/chat/dm/<id>` | Chat, or the conversation, in that workspace |
127127 | `g1t://<owner>/<repo>` | The repository |
128128 | `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 |
130130
131131 Any other page opens on the site, in the browser.
132132
+17−0
213213
214214 A project can have its own setting, or follow the workspace's.
215215
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+
216233 ## Billing
217234
218235 Time on your runners is free. Each job's minutes go on
+1−1
6565 | `services/chat` | Runs, with its Durable Objects; custom emoji are kept with avatars |
6666 | `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. |
6767 | `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. |
6969 | `services/billing` | Runs with nothing charged and no usage limit |
7070 | `services/integrations` | Runs |
7171 | `services/webhooks` | Runs, retries included |
+13−2
267267 the `g1t-data` volume) on first start. What the app can do, and what comes
268268 across from GitHub, is in [GitHub](/guides/github/).
269269
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+
270281 ## Where your data lives
271282
272283 | Volume | Holds |
285296 docker compose -f deploy/self-host/docker-compose.yml start
286297 ```
287298
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.
290301
291302 ## Upgrade
292303
+5−1
4949 | **Models** | Each model's share. |
5050 | **Kind of work** | Chat replies, sessions, routines, helping colleagues and subagents. |
5151 | **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. |
5352
5453 A slice is part of the page's address (`?by=channel`), so you can share it.
5554
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+
5660 ## Spend less, keep quality
5761
5862 Every week, g1t checks each agent's finished sessions and asks one
+7−8
637637
638638 ### Apps
639639
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**.
644643 The built-in apps' own pages are in their sidebars, not in Apps: Code's has
645644 **Projects**, **Security** and **Packages**; Agents' has **Templates**,
646645 **Context** and **Memory**; People's has **Everyone**, **Teams** and **Org
656655 3. Select the pin on its tile. Select it again to unpin it.
657656
658657 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*.
661660
662661 Your pins are yours alone and each workspace has its own. They are saved
663662 to your account, so your rail is the same on every browser and device you
767766
768767 | | What it does |
769768 | --- | --- |
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. |
772771 | **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. |
773772 | **The tab you are already on** | Tap it again to open that app's sidebar too. |
774773 | **The workspace's name** in the page's header | Switches workspace, or opens your profile or settings. |
+7−5
8585 | [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" /> |
8686 | [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" /> |
8787 | [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" /> |
8989 | [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" /> |
9293 | 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" /> |
9394 | [Agents in your chat app](/guides/chat-app/) | The same agents, answering in the chat app your team already uses. | <Status is="coming" /> |
9495
116117 | --- | --- | --- |
117118 | [Integrations](/guides/integrations/) | The GitHub App, Sentry, Datadog, Jira, Linear and alerts. | <Status is="live" /> |
118119 | [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" /> |
121123 | More integrations | Drive, Gmail, Calendar, Slack and Microsoft 365, each listing what it lets agents do. | <Status is="coming" /> |
122124 | Mail | Email on your own domain, with shared inboxes that agents work in. | <Status is="coming" /> |
123125
+2−0
1010 action is the same operation as a route of the [REST API](/reference/api/),
1111 with the same inputs, permissions and results, so the two always agree.
1212
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+
1315 ## Connect
1416
1517 To connect Claude Code, Codex, OpenCode, Cursor or another client, see

Comments

Sign in to comment.