Skip to content

Commit 5024c0c

Browse files
committed
addressing feedback and adding docs
1 parent 476328e commit 5024c0c

3 files changed

Lines changed: 68 additions & 9 deletions

File tree

WHITE_LABEL.md renamed to CUSTOM_DISTROS.md

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff 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.
24
35
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.
46

57
## Overview
68

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:
810

911
- **Preconfigure AI providers**: Ship with a specific model (local or cloud) and API credentials
1012
- **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
7476

7577
### Licensing
7678

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:
7880
- Include the original license and copyright notices
7981
- Clearly indicate any modifications made
8082
- 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
8789

8890
### Telemetry
8991

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:
9193
- **Disable telemetry**: Set `GOOSE_DISABLE_TELEMETRY=1`
9294
- **Use your own instance**: Modify `crates/goose/src/posthog.rs` to point to your PostHog instance
9395

@@ -101,7 +103,7 @@ To benefit from upstream improvements:
101103

102104
---
103105

104-
# Appendix: White-Label Scenarios
106+
# Appendix: Custom Distribution Scenarios
105107

106108
## A. Preconfigured Local Model Distribution
107109

@@ -210,7 +212,7 @@ async def query_data_lake(query: str) -> str:
210212
```yaml
211213
# data-analyst.yaml
212214
title: Data Analyst Assistant
213-
description: Goose configured for data analysis
215+
description: goose configured for data analysis
214216
instructions: |
215217
You have access to the corporate data lake. Help users query and analyze data.
216218
extensions:
@@ -269,7 +271,7 @@ You are an AI assistant called [YourName], created by [YourCompany].
269271
### Technical Details
270272

271273
- 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`
273275
- System prompts: `crates/goose/src/prompts/`
274276

275277
---
@@ -278,7 +280,7 @@ You are an AI assistant called [YourName], created by [YourCompany].
278280

279281
**Goal**: Create an entirely new frontend while leveraging goose's backend.
280282

281-
Goose provides two integration options for building custom UIs:
283+
goose provides two integration options for building custom UIs:
282284

283285
### Option 1: REST API (goose-server)
284286

@@ -501,7 +503,7 @@ For providers with unique APIs, implement the Provider trait:
501503

502504
**Goal**: Create standardized, repeatable workflows that users can run with minimal setup.
503505

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.
505507

506508
### Basic Recipe Structure
507509

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ Designed for maximum flexibility, goose works with any LLM and supports multi-mo
3232
- [Documentation](https://block.github.io/goose/docs/category/getting-started)
3333
- [Responsible AI-Assisted Coding Guide](https://github.com/block/goose/blob/main/HOWTOAI.md)
3434
- [Governance](https://github.com/block/goose/blob/main/GOVERNANCE.md)
35+
- [Custom Distributions](https://github.com/block/goose/blob/main/CUSTOM_DISTROS.md) - build your own goose distro with preconfigured providers, extensions, and branding
3536

3637
## Need Help?
3738
- [Diagnostics & Reporting](https://block.github.io/goose/docs/troubleshooting/diagnostics-and-reporting)
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
---
2+
title: Custom Distributions
3+
sidebar_position: 60
4+
sidebar_label: Custom Distributions
5+
---
6+
7+
# Custom Distributions
8+
9+
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:
26+
27+
👉 **[CUSTOM_DISTROS.md](https://github.com/block/goose/blob/main/CUSTOM_DISTROS.md)**
28+
29+
It covers:
30+
31+
- **Architecture overview** — how goose's layers (UI → server → core) fit together
32+
- **Configuration-only customization** — environment variables, `config.yaml`, `init-config.yaml`
33+
- **Extension bundling** — adding MCP servers as built-in extensions or via recipes
34+
- **Custom branding** — replacing icons, app names, system prompts
35+
- **Building new interfaces** — integrating via the REST API or Agent Client Protocol (ACP)
36+
- **Custom AI providers** — declarative JSON providers or implementing the Provider trait
37+
- **Recipes & subagents** — distributing preconfigured workflows
38+
- **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

Comments
 (0)