You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CUSTOM_DISTROS.md
+11-9Lines changed: 11 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,12 @@
1
-
# White-Labeling Goose
1
+
# Custom Distributions of goose
2
+
3
+
> **Tip:** This is sometimes referred to as "white labelling" — creating a branded or tailored version of an open source project for your organization.
2
4
3
5
This guide explains how to create custom distributions of goose tailored to your organization's needs—whether that's preconfigured models, custom tools, branded interfaces, or entirely new user experiences.
4
6
5
7
## Overview
6
8
7
-
Goose's architecture is designed for extensibility. Organizations can create "remixed" versions that:
9
+
goose's architecture is designed for extensibility. Organizations can create "remixed" versions that:
8
10
9
11
-**Preconfigure AI providers**: Ship with a specific model (local or cloud) and API credentials
10
12
-**Bundle custom tools**: Include proprietary extensions for internal data sources
@@ -74,7 +76,7 @@ See [BUILDING_LINUX.md](BUILDING_LINUX.md) and [ui/desktop/README.md](ui/desktop
74
76
75
77
### Licensing
76
78
77
-
Goose is licensed under Apache License 2.0 (ASL v2). White-label distributions must:
79
+
goose is licensed under Apache License 2.0 (ASL v2). Custom distributions must:
78
80
- Include the original license and copyright notices
79
81
- Clearly indicate any modifications made
80
82
- Not use "Goose" trademarks in ways that imply official endorsement
@@ -87,7 +89,7 @@ While you're free to maintain private forks, contributing improvements upstream
87
89
88
90
### Telemetry
89
91
90
-
Goose includes optional telemetry (via PostHog) to help improve the project. For white-label distributions, you can:
92
+
goose includes optional telemetry (via PostHog) to help improve the project. For custom distributions, you can:
91
93
-**Disable telemetry**: Set `GOOSE_DISABLE_TELEMETRY=1`
92
94
-**Use your own instance**: Modify `crates/goose/src/posthog.rs` to point to your PostHog instance
93
95
@@ -101,7 +103,7 @@ To benefit from upstream improvements:
You have access to the corporate data lake. Help users query and analyze data.
216
218
extensions:
@@ -269,7 +271,7 @@ You are an AI assistant called [YourName], created by [YourCompany].
269
271
### Technical Details
270
272
271
273
- Electron config: `ui/desktop/forge.config.ts`
272
-
- UI components: `ui/desktop/src/renderer/`(if using standard structure)
274
+
- UI entry point: `ui/desktop/src/renderer.tsx`
273
275
- System prompts: `crates/goose/src/prompts/`
274
276
275
277
---
@@ -278,7 +280,7 @@ You are an AI assistant called [YourName], created by [YourCompany].
278
280
279
281
**Goal**: Create an entirely new frontend while leveraging goose's backend.
280
282
281
-
Goose provides two integration options for building custom UIs:
283
+
goose provides two integration options for building custom UIs:
282
284
283
285
### Option 1: REST API (goose-server)
284
286
@@ -501,7 +503,7 @@ For providers with unique APIs, implement the Provider trait:
501
503
502
504
**Goal**: Create standardized, repeatable workflows that users can run with minimal setup.
503
505
504
-
Recipes are YAML files that define complete goose experiences—instructions, extensions, parameters, and prompts bundled together. They're ideal for white-labeling because they require no code changes and can be distributed as simple files.
506
+
Recipes are YAML files that define complete goose experiences—instructions, extensions, parameters, and prompts bundled together. They're ideal for custom distributions because they require no code changes and can be distributed as simple files.
-[Custom Distributions](https://github.com/block/goose/blob/main/CUSTOM_DISTROS.md) - build your own goose distro with preconfigured providers, extensions, and branding
goose is designed to be forked and customized. You can create your own "distro" of goose — preconfigured with specific providers, bundled extensions, custom branding, and tailored workflows for your organization or audience.
10
+
11
+
## What you can customize
12
+
13
+
| What You Want | Complexity |
14
+
|---------------|------------|
15
+
| Preconfigure a model/provider | Low |
16
+
| Add custom AI providers (declarative JSON, no code) | Low |
17
+
| Bundle custom MCP extensions | Medium |
18
+
| Modify system prompts | Low |
19
+
| Customize desktop branding (icons, names, colors) | Medium |
20
+
| Build a new UI via REST API or ACP | High |
21
+
| Create guided workflows with recipes | Low |
22
+
23
+
## Getting started
24
+
25
+
The full guide lives in the repo root since you'll need to work at the code level to build a custom distribution:
-**Licensing & contribution guidance** — staying compliant with Apache 2.0
39
+
40
+
## Quick example: ship goose with a local model
41
+
42
+
The simplest custom distribution just sets environment defaults:
43
+
44
+
```bash
45
+
export GOOSE_PROVIDER=ollama
46
+
export GOOSE_MODEL=qwen3-coder:latest
47
+
```
48
+
49
+
Or create an `init-config.yaml` applied on first run:
50
+
51
+
```yaml
52
+
GOOSE_PROVIDER: ollama
53
+
GOOSE_MODEL: qwen3-coder:latest
54
+
```
55
+
56
+
See the [full guide](https://github.com/block/goose/blob/main/CUSTOM_DISTROS.md) for more scenarios including corporate API key distribution, audience-specific builds, and custom UIs.
0 commit comments