Skip to content
216 linesCodeBlameRaw

Pick any line to see why it is the way it is: the commit, the pull request and issue it came from, and what the agent was thinking.

Automations: say plainly why a run was skipped to avoid a loop1// @ts-check
2import starlight from '@astrojs/starlight';
3import { defineConfig } from 'astro/config';
4
Merge branch 'worktree-agent-ab2e39e11a6493412'5import { generateApiReference } from './scripts/api-reference.mjs';
6
7// A page per REST operation, written from the OpenAPI document.
8const apiGroups = generateApiReference();
9
Automations: say plainly why a run was skipped to avoid a loop10export default defineConfig({
11 site: 'https://docs.g1t.sh',
g1t is one name: its agent's work, commits and comments show as @g1t, and nobody can claim g1t or g1t-agent12 // Pages that moved, so links already shared still arrive.
13 redirects: {
14 '/guides/g1t-agents/': '/guides/working-with-g1t/',
g1t is described as the product it is in alpha, and its shell takes the new shape: the README, the docs home and docs/PLAN.md label every feature Live, Preview or Coming; a floating dock with the g1t mark, Today, Chat, Notifications, Agents, Code, Artifacts, your pinned apps and the Apps launcher, with People, Workspace and the account menu (now holding help) at its foot; the workspace's logo and switcher heading a flat sidebar that folds away with Ctrl B, or leading the header's breadcrumbs where there is none; the page in a rounded panel with a full-width header; Today as the front page, with first-time acceptance of agents' pull requests, what needs you and what's at stake, spend today and one item to start with, every number from a service; Notifications in place of the Inbox at /notifications; a bottom bar and More sheet on phones; and sign-in, sign-up, two-factor, reset, invites and choosing a workspace on standalone pages with no app around them.15 '/guides/inbox/': '/guides/notifications/',
g1t is one name: its agent's work, commits and comments show as @g1t, and nobody can claim g1t or g1t-agent16 },
Automations: say plainly why a run was skipped to avoid a loop17 integrations: [
18 starlight({
19 title: 'g1t docs',
Chat and workspace agents: channels, DMs and named agents you talk to20 description: 'Guides and reference for g1t, the workspace where a team and its agents talk, work and ship.',
Automations: say plainly why a run was skipped to avoid a loop21 components: {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look22 Footer: './src/components/Footer.astro',
23 Head: './src/components/Head.astro',
Docs in the shape of docs.continue.dev24 Header: './src/components/Header.astro',
25 PageTitle: './src/components/PageTitle.astro',
Automations: say plainly why a run was skipped to avoid a loop26 SiteTitle: './src/components/SiteTitle.astro',
27 SocialIcons: './src/components/SocialIcons.astro',
28 },
Docs in the shape of docs.continue.dev29 // Each tab under the header shows its own part of the sidebar.
30 routeMiddleware: './src/route-data.ts',
Automations: say plainly why a run was skipped to avoid a loop31 expressiveCode: {
docs.g1t.sh and status.g1t.sh follow your system's light or dark setting, and each has an Auto, Light and Dark switch that this browser remembers: the docs' in the header (at the foot of the menu on a phone), with code, search, the API reference and its explorer in both themes; the status page's in its header, chosen before anything is drawn; the workspaces guide says where.32 // Dark first, as the base; the light one where the page is light.
33 // Starlight switches between them by <html data-theme>.
34 themes: ['github-dark-default', 'github-light-default'],
35 useDarkModeMediaQuery: false,
Docs in the shape of docs.continue.dev36 // Plain panels with a copy button, without window chrome.
37 defaultProps: { frame: 'none' },
Automations: say plainly why a run was skipped to avoid a loop38 styleOverrides: {
39 borderRadius: '0.75rem',
40 borderColor: 'var(--g1t-line)',
41 codeBackground: 'var(--g1t-surface)',
42 codeFontSize: '0.8125rem',
43 frames: {
44 editorBackground: 'var(--g1t-surface)',
45 terminalBackground: 'var(--g1t-surface)',
46 terminalTitlebarBackground: 'var(--g1t-raised)',
47 terminalTitlebarBorderBottomColor: 'var(--g1t-line)',
48 editorTabBarBackground: 'var(--g1t-raised)',
49 shadowColor: 'transparent',
50 },
51 },
52 },
53 logo: { src: '@g1t/theme/mark.svg', alt: '' },
54 favicon: '/favicon.svg',
docs.g1t.sh and status.g1t.sh follow your system's light or dark setting, and each has an Auto, Light and Dark switch that this browser remembers: the docs' in the header (at the foot of the menu on a phone), with code, search, the API reference and its explorer in both themes; the status page's in its header, chosen before anything is drawn; the workspaces guide says where.55 customCss: [
56 '@g1t/theme/fonts.css',
57 '@g1t/theme/tokens.css',
58 './src/styles/light.css',
59 './src/styles/g1t.css',
60 ],
Automations: say plainly why a run was skipped to avoid a loop61 editLink: {
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look62 baseUrl: 'https://g1t.sh/flagon-io/g1t/blob/main/apps/docs/',
Automations: say plainly why a run was skipped to avoid a loop63 },
64 lastUpdated: true,
65 head: [
The fleet: g1t's new mark66 { tag: 'link', attrs: { rel: 'icon', href: '/favicon.ico', sizes: '32x32' } },
67 { tag: 'link', attrs: { rel: 'icon', type: 'image/png', sizes: '192x192', href: '/icon-192.png' } },
Agents mode: an overview of every agent's work and spend, and each agent's sessions, memory, routines, spend, activity and versions68 { tag: 'link', attrs: { rel: 'icon', type: 'image/png', sizes: '512x512', href: '/icon-512.png' } },
69 { tag: 'link', attrs: { rel: 'apple-touch-icon', sizes: '180x180', href: '/apple-touch-icon.png' } },
70 { tag: 'link', attrs: { rel: 'manifest', href: '/site.webmanifest' } },
docs.g1t.sh and status.g1t.sh follow your system's light or dark setting, and each has an Auto, Light and Dark switch that this browser remembers: the docs' in the header (at the foot of the menu on a phone), with code, search, the API reference and its explorer in both themes; the status page's in its header, chosen before anything is drawn; the workspaces guide says where.71 // The browser's own bars, in the page's colour for the system's setting.
72 { tag: 'meta', attrs: { name: 'theme-color', content: '#0f0f11', media: '(prefers-color-scheme: dark)' } },
73 { tag: 'meta', attrs: { name: 'theme-color', content: '#fbfbfa', media: '(prefers-color-scheme: light)' } },
Automations: say plainly why a run was skipped to avoid a loop74 ],
75 sidebar: [
76 {
77 label: 'Get started',
78 items: [
79 { label: 'Quickstart', slug: 'quickstart' },
80 { label: 'How g1t works', slug: 'concepts/overview' },
g1t is described as the product it is in alpha, and its shell takes the new shape: the README, the docs home and docs/PLAN.md label every feature Live, Preview or Coming; a floating dock with the g1t mark, Today, Chat, Notifications, Agents, Code, Artifacts, your pinned apps and the Apps launcher, with People, Workspace and the account menu (now holding help) at its foot; the workspace's logo and switcher heading a flat sidebar that folds away with Ctrl B, or leading the header's breadcrumbs where there is none; the page in a rounded panel with a full-width header; Today as the front page, with first-time acceptance of agents' pull requests, what needs you and what's at stake, spend today and one item to start with, every number from a service; Notifications in place of the Inbox at /notifications; a bottom bar and More sheet on phones; and sign-in, sign-up, two-factor, reset, invites and choosing a workspace on standalone pages with no app around them.81 { label: 'Today', slug: 'guides/today' },
82 { label: 'Notifications', slug: 'guides/notifications' },
Search across all of g1t, Explore, and a command palette83 { label: 'Search and Explore', slug: 'guides/search' },
status.g1t.sh with incident management, invites that land you in the workspace, settings as pages, usage without quotas84 { label: 'Status and incidents', slug: 'guides/status' },
Automations: say plainly why a run was skipped to avoid a loop85 ],
86 },
87 {
Chat and workspace agents: channels, DMs and named agents you talk to88 label: 'Chat and agents',
89 items: [
90 { label: 'Chat', slug: 'guides/chat' },
91 { label: 'Agents', slug: 'guides/agents' },
Agents mode: an overview of every agent's work and spend, and each agent's sessions, memory, routines, spend, activity and versions92 { label: 'Sessions', slug: 'guides/agent-sessions' },
93 { label: 'Agent memory', slug: 'guides/agent-memory' },
94 { label: 'Routines', slug: 'guides/agent-routines' },
95 { label: 'Agent budgets and spend', slug: 'guides/agent-budgets' },
Chat and workspace agents: channels, DMs and named agents you talk to96 { label: 'What agents can do for whom', slug: 'guides/agent-access' },
The Artifacts guide explains home, the sidebar, sharing and access requests, Private, spaces with Editors can share, docs, agents and writing a thread up, links in chat, history, templates, the trash and export, in place of the Docs guide, whose links now go to it.97 { label: 'Artifacts', slug: 'guides/artifacts' },
Chat and workspace agents: channels, DMs and named agents you talk to98 { label: 'Agents in your chat app', slug: 'guides/chat-app', badge: { text: 'Soon', variant: 'default' } },
99 ],
100 },
101 {
Projects: what a workspace builds and runs, first on every page102 label: 'Projects',
103 items: [
104 { label: 'Projects', slug: 'guides/projects' },
105 { label: 'Deployments', slug: 'guides/deployments' },
Merge branch 'main' into worktree-agent-a69aeabc4b0deeb97106 { label: 'Deployments API', slug: 'guides/deployments-api' },
Packages, with a container registry on g1t.sh; workspaces deleted whole and kept 30 days; Members for every member107 { label: 'Packages', slug: 'guides/packages' },
108 { label: 'Container images', slug: 'guides/containers' },
npm on g1t.sh: publish and install @<workspace>/<name> with the npm CLI and a g1t token109 { label: 'npm', slug: 'guides/npm' },
Cargo on g1t.sh: a sparse registry per workspace, cargo publish/add/yank/search with a g1t token; npm rows show their version110 { label: 'Cargo', slug: 'guides/cargo' },
Composer from the workspace's own repositories, and go get from g1t.sh111 { label: 'Composer', slug: 'guides/composer' },
Merge branch 'worktree-agent-a6a121745e81f639f'112 { label: 'Maven', slug: 'guides/maven' },
113 { label: 'NuGet', slug: 'guides/nuget' },
114 { label: 'RubyGems', slug: 'guides/rubygems' },
Composer from the workspace's own repositories, and go get from g1t.sh115 { label: 'Go modules', slug: 'guides/go' },
Projects: what a workspace builds and runs, first on every page116 { label: 'Secrets and variables', slug: 'guides/secrets-and-variables' },
Teams and CODEOWNERS, labels and milestones, dependency updates, the security suite, and a clearer top bar117 ],
118 },
119 {
120 label: 'Security',
121 items: [
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API122 { label: 'Security', slug: 'guides/security' },
Teams and CODEOWNERS, labels and milestones, dependency updates, the security suite, and a clearer top bar123 { label: 'Dependency updates', slug: 'guides/dependency-updates' },
124 { label: 'Secret protection', slug: 'guides/security/secret-protection' },
125 { label: 'Code scanning', slug: 'guides/security/code-scanning' },
126 { label: 'Supply chain', slug: 'guides/security/supply-chain' },
127 { label: 'Security overview', slug: 'guides/security/security-overview' },
128 { label: "What's free and what's paid", slug: 'guides/security/pricing' },
Projects: what a workspace builds and runs, first on every page129 ],
130 },
131 {
Chat and workspace agents: channels, DMs and named agents you talk to132 label: 'Agents on code',
Automations: say plainly why a run was skipped to avoid a loop133 items: [
g1t is one name: its agent's work, commits and comments show as @g1t, and nobody can claim g1t or g1t-agent134 { label: "g1t's agent", slug: 'guides/working-with-g1t' },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API135 { label: 'Guardrails', slug: 'guides/guardrails' },
Automations: say plainly why a run was skipped to avoid a loop136 { label: 'Outcomes and plans', slug: 'guides/outcomes' },
137 { label: 'Talking to agents', slug: 'guides/talking-to-agents' },
Agents and memory, checks and conflicts, profiles, slug renames, custom domains138 { label: 'Agents, sessions and memory', slug: 'guides/agents-and-memory' },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API139 { label: 'Context hub', slug: 'guides/context-hub' },
Automations: say plainly why a run was skipped to avoid a loop140 { label: 'Bring your own agent', slug: 'guides/bring-your-own-agent' },
141 ],
142 },
143 {
144 label: 'Connect your tools',
145 items: [
146 { label: 'Integrations', slug: 'guides/integrations' },
147 { label: 'Model providers', slug: 'guides/models' },
Merge the AI Gateway: Anthropic's Messages API on a workspace's tokens148 { label: 'AI Gateway', slug: 'guides/ai-gateway' },
Automations: say plainly why a run was skipped to avoid a loop149 { label: 'Webhooks', slug: 'guides/webhooks' },
GitHub Actions on g1t, part three: .g1t/workflows, the pages, the docs150 { label: 'GitHub Actions', slug: 'guides/actions' },
Fast pages, required checks on the branch, self-hosted runners, honest incidents151 { label: 'Self-hosted runners', slug: 'guides/self-hosted-runners' },
Automations: say plainly why a run was skipped to avoid a loop152 ],
153 },
154 {
155 label: 'Landing changes',
156 items: [
Agents and memory, checks and conflicts, profiles, slug renames, custom domains157 { label: 'Pull requests and checks', slug: 'guides/pull-requests' },
Merge checks: statuses and check runs on every commit158 { label: 'Checks', slug: 'guides/checks' },
Teams and CODEOWNERS, labels and milestones, dependency updates, the security suite, and a clearer top bar159 { label: 'Pull requests into other branches', slug: 'guides/base-branches' },
160 { label: 'Labels', slug: 'guides/labels' },
161 { label: 'Milestones', slug: 'guides/milestones' },
Automations: say plainly why a run was skipped to avoid a loop162 { label: 'The merge queue', slug: 'guides/merge-queue' },
Merge rulesets: branch and tag rules, agent-first, enforced on push and merge163 { label: 'Rules', slug: 'guides/rules' },
Teams and CODEOWNERS, labels and milestones, dependency updates, the security suite, and a clearer top bar164 { label: 'CODEOWNERS', slug: 'guides/codeowners' },
Automations: say plainly why a run was skipped to avoid a loop165 { label: 'Sessions and why-blame', slug: 'guides/why-blame' },
166 { label: 'Forks and branches', slug: 'concepts/forks' },
167 ],
168 },
169 {
170 label: 'Workspaces',
171 items: [
172 { label: 'Accounts and sign-in', slug: 'guides/authentication' },
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look173 { label: 'GitHub', slug: 'guides/github' },
Merge branch 'mirroring' into artifacts-mode174 { label: 'Mirroring', slug: 'guides/mirroring' },
Automations: say plainly why a run was skipped to avoid a loop175 { label: 'Workspaces and tokens', slug: 'guides/workspaces' },
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look176 { label: 'Access and roles', slug: 'guides/access-and-roles' },
Teams and CODEOWNERS, labels and milestones, dependency updates, the security suite, and a clearer top bar177 { label: 'Teams', slug: 'guides/teams' },
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look178 { label: 'Managing a repository', slug: 'guides/managing-repositories' },
Merge branch 'main' into worktree-agent-a69aeabc4b0deeb97179 { label: 'Releases', slug: 'guides/releases' },
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look180 { label: 'Transferring a repository', slug: 'guides/transferring-repositories' },
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API181 { label: 'Audit log', slug: 'guides/audit-log' },
Automations: say plainly why a run was skipped to avoid a loop182 { label: 'Usage and billing', slug: 'guides/usage-and-billing' },
183 { label: 'Git', slug: 'guides/git' },
184 ],
185 },
186 {
The docs folder is gone, and what it held lives where people read it: how a self-hosted g1t runs and how to deploy g1t to Cloudflare are pages on docs.g1t.sh under Run g1t yourself, and speed, rate limits and operating g1t.sh are sections of CONTRIBUTING.md; code that cited a file in docs/ now points to the page or section that covers it, or says what it means itself, and applied migrations and the runner images are left as they were.187 label: 'Run g1t yourself',
188 items: [
189 { label: 'With Docker Compose', slug: 'guides/self-hosting' },
190 { label: 'How a self-hosted g1t runs', slug: 'guides/self-hosting-architecture' },
191 { label: 'Deploy to Cloudflare', slug: 'guides/deploy-to-cloudflare' },
192 ],
193 },
194 {
Automations: say plainly why a run was skipped to avoid a loop195 label: 'Reference',
196 items: [
197 { label: 'API overview', slug: 'reference/api' },
198 { label: 'MCP tools', slug: 'reference/mcp' },
Merge branch 'worktree-agent-a8752162fea25f63f' into spend-guardrails199 { label: 'Rate limits', slug: 'reference/rate-limits' },
Merge branch 'worktree-agent-ab2e39e11a6493412'200 { label: 'Try it in the explorer', link: '/api/reference/', attrs: { target: '_self' } },
Automations: say plainly why a run was skipped to avoid a loop201 { label: 'OpenAPI document', link: 'https://api.g1t.sh/openapi.json' },
202 { label: 'llms.txt', link: 'https://g1t.sh/llms.txt' },
203 ],
204 },
Fast pages, required checks on the branch, self-hosted runners, honest incidents205 {
206 label: 'About',
What g1t can't do yet, and an open letter to Cloudflare207 items: [
208 { label: "What g1t can't do yet", slug: 'about/limitations' },
209 { label: 'An open letter to Cloudflare', slug: 'about/open-letter-to-cloudflare' },
210 ],
Fast pages, required checks on the branch, self-hosted runners, honest incidents211 },
Merge branch 'worktree-agent-ab2e39e11a6493412'212 ...apiGroups,
Automations: say plainly why a run was skipped to avoid a loop213 ],
214 }),
215 ],
216});

This file's history is long; its oldest lines are credited to the oldest commit read.