Skip to content

Commit f811e45

Browse files
Rebrand GoVectorSync to Distill throughout codebase
- Update CLI name from govs to distill - Update all help text and examples - Update MCP server name and resources (distill://) - Update config file name (.distill.yaml) - Update mcp/ directory docs and examples - Consistent branding as 'Distill' everywhere
1 parent a2ad2fa commit f811e45

10 files changed

Lines changed: 68 additions & 68 deletions

cmd/analyze.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ var analyzeCmd = &cobra.Command{
2323
potential duplicates without uploading to Pinecone.
2424
2525
Example:
26-
govs analyze --file data.jsonl --threshold 0.05
26+
distill analyze --file data.jsonl --threshold 0.05
2727
2828
The threshold controls duplicate sensitivity:
2929
- 0.01: Very strict (only near-identical vectors)
@@ -183,7 +183,7 @@ func printAnalysisReport(result *types.DeduplicationResult, verbose bool) {
183183
fmt.Println()
184184

185185
if result.DuplicateCount > 0 {
186-
fmt.Println("Recommendation: Use 'govs sync --dedup=true' to upload deduplicated vectors.")
186+
fmt.Println("Recommendation: Use 'distill sync --dedup=true' to upload deduplicated vectors.")
187187
} else {
188188
fmt.Println("No duplicates found. Your dataset is already unique.")
189189
}

cmd/api.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ Unlike 'serve', this doesn't require a vector DB connection.
2525
Clients send chunks directly and receive deduplicated results.
2626
2727
Example:
28-
govs api --port 8080
28+
distill api --port 8080
2929
3030
The server exposes:
3131
POST /v1/dedupe - Deduplicate chunks

cmd/mcp.go

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ import (
2020

2121
var mcpCmd = &cobra.Command{
2222
Use: "mcp",
23-
Short: "Start GoVectorSync as an MCP server",
24-
Long: `Starts GoVectorSync as a Model Context Protocol (MCP) server.
23+
Short: "Start Distill as an MCP server",
24+
Long: `Starts Distill as a Model Context Protocol (MCP) server.
2525
26-
This allows AI assistants like Claude, Amp, and Cursor to use GoVectorSync's
26+
This allows AI assistants like Claude, Amp, and Cursor to use Distill's
2727
semantic deduplication capabilities directly.
2828
2929
Transports:
@@ -36,23 +36,23 @@ Tools exposed:
3636
analyze_redundancy - Analyze chunks for redundancy stats
3737
3838
Resources exposed:
39-
govectorsync://system-prompt - System prompt for AI assistants
39+
distill://system-prompt - System prompt for AI assistants
4040
4141
Example:
4242
# Local stdio server (Claude Desktop, Cursor, Amp)
43-
govs mcp
43+
distill mcp
4444
4545
# Remote HTTP server (hosted deployment)
46-
govs mcp --transport http --port 8081
46+
distill mcp --transport http --port 8081
4747
4848
# With vector DB backend
49-
govs mcp --backend pinecone --index my-index
49+
distill mcp --backend pinecone --index my-index
5050
5151
Configure in Claude Desktop (claude_desktop_config.json):
5252
{
5353
"mcpServers": {
54-
"govectorsync": {
55-
"command": "govs",
54+
"distill": {
55+
"command": "distill",
5656
"args": ["mcp"]
5757
}
5858
}
@@ -61,7 +61,7 @@ Configure in Claude Desktop (claude_desktop_config.json):
6161
For remote MCP server:
6262
{
6363
"mcpServers": {
64-
"govectorsync": {
64+
"distill": {
6565
"url": "https://your-server.fly.dev/mcp"
6666
}
6767
}
@@ -95,7 +95,7 @@ func init() {
9595
mcpCmd.Flags().Float64("lambda", 0.5, "Default MMR lambda")
9696
}
9797

98-
// MCPServer wraps the MCP server with GoVectorSync capabilities
98+
// MCPServer wraps the MCP server with Distill capabilities
9999
type MCPServer struct {
100100
broker *contextlab.Broker
101101
embedder retriever.EmbeddingProvider
@@ -209,7 +209,7 @@ func runMCP(cmd *cobra.Command, args []string) error {
209209

210210
// Create MCP server with capabilities
211211
s := server.NewMCPServer(
212-
"GoVectorSync",
212+
"Distill",
213213
"1.0.0",
214214
server.WithToolCapabilities(false),
215215
server.WithResourceCapabilities(true, false),
@@ -230,7 +230,7 @@ func runMCP(cmd *cobra.Command, args []string) error {
230230

231231
case "http":
232232
addr := fmt.Sprintf("%s:%d", host, port)
233-
fmt.Printf("GoVectorSync MCP server starting on http://%s\n", addr)
233+
fmt.Printf("Distill MCP server starting on http://%s\n", addr)
234234
fmt.Printf(" Endpoint: http://%s/mcp\n", addr)
235235
fmt.Printf(" Health: http://%s/health\n", addr)
236236
fmt.Println()
@@ -241,7 +241,7 @@ func runMCP(cmd *cobra.Command, args []string) error {
241241
// Health check endpoint
242242
mux.HandleFunc("/health", func(w http.ResponseWriter, r *http.Request) {
243243
w.Header().Set("Content-Type", "application/json")
244-
_, _ = w.Write([]byte(`{"status":"ok","server":"govectorsync-mcp"}`))
244+
_, _ = w.Write([]byte(`{"status":"ok","server":"distill-mcp"}`))
245245
})
246246

247247
// MCP endpoint with stateful sessions
@@ -350,7 +350,7 @@ whether to deduplicate. Returns cluster information and redundancy percentage.`)
350350
}
351351

352352
// System prompt that guides AI assistants to use deduplication
353-
const systemPromptContent = `You have access to GoVectorSync, a semantic deduplication tool for RAG context.
353+
const systemPromptContent = `You have access to Distill, a semantic deduplication tool for RAG context.
354354
355355
IMPORTANT: When you receive multiple chunks from retrieval or search:
356356
1. Check if chunks might contain overlapping information
@@ -366,16 +366,16 @@ Use analyze_redundancy first if you want to see the redundancy stats before dedu
366366
func (m *MCPServer) registerResources(s *server.MCPServer) {
367367
// System prompt resource - hosts can include this in context
368368
systemPrompt := mcp.NewResource(
369-
"govectorsync://system-prompt",
370-
"GoVectorSync System Prompt",
369+
"distill://system-prompt",
370+
"Distill System Prompt",
371371
mcp.WithResourceDescription("System prompt that guides AI to use deduplication tools effectively"),
372372
mcp.WithMIMEType("text/plain"),
373373
)
374374

375375
s.AddResource(systemPrompt, func(ctx context.Context, request mcp.ReadResourceRequest) ([]mcp.ResourceContents, error) {
376376
return []mcp.ResourceContents{
377377
mcp.TextResourceContents{
378-
URI: "govectorsync://system-prompt",
378+
URI: "distill://system-prompt",
379379
MIMEType: "text/plain",
380380
Text: systemPromptContent,
381381
},
@@ -384,8 +384,8 @@ func (m *MCPServer) registerResources(s *server.MCPServer) {
384384

385385
// Configuration resource - shows current settings
386386
configResource := mcp.NewResource(
387-
"govectorsync://config",
388-
"GoVectorSync Configuration",
387+
"distill://config",
388+
"Distill Configuration",
389389
mcp.WithResourceDescription("Current deduplication configuration and defaults"),
390390
mcp.WithMIMEType("application/json"),
391391
)
@@ -404,7 +404,7 @@ func (m *MCPServer) registerResources(s *server.MCPServer) {
404404
configJSON, _ := json.MarshalIndent(config, "", " ")
405405
return []mcp.ResourceContents{
406406
mcp.TextResourceContents{
407-
URI: "govectorsync://config",
407+
URI: "distill://config",
408408
MIMEType: "application/json",
409409
Text: string(configJSON),
410410
},

cmd/query.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ var queryCmd = &cobra.Command{
2525
Useful for testing and tuning ContextLab parameters.
2626
2727
Example:
28-
govs query "How do I configure authentication?" --index my-index
28+
distill query "How do I configure authentication?" --index my-index
2929
3030
Requires PINECONE_API_KEY and OPENAI_API_KEY environment variables.`,
3131
Args: cobra.MinimumNArgs(1),

cmd/root.go

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,21 @@ var cfgFile string
1212

1313
// rootCmd represents the base command when called without any subcommands
1414
var rootCmd = &cobra.Command{
15-
Use: "govs",
16-
Short: "GoVectorSync - High-performance vector ingestion with semantic deduplication",
17-
Long: `GoVectorSync (govs) is a production-grade CLI tool for ingesting massive
18-
datasets of vector embeddings into Pinecone with client-side semantic deduplication.
15+
Use: "distill",
16+
Short: "Distill - Reliability layer for LLM context with semantic deduplication",
17+
Long: `Distill is a reliability layer for LLM context that removes redundancy
18+
before it reaches your model, improving output quality and determinism.
1919
2020
Features:
21-
- SIMD-accelerated cosine distance calculations (AVX2/AVX-512)
22-
- Custom K-Means clustering for semantic deduplication
23-
- Worker pool pattern for maximum throughput
24-
- Exponential backoff retry logic
21+
- Agglomerative clustering for semantic deduplication
22+
- MMR re-ranking for diversity
23+
- ~12ms latency, no LLM calls
24+
- Deterministic, auditable results
2525
2626
Environment Variables:
27-
PINECONE_API_KEY Your Pinecone API key (required for sync)
28-
PINECONE_INDEX Default index name
29-
PINECONE_NAMESPACE Default namespace`,
27+
OPENAI_API_KEY For text → embedding conversion
28+
PINECONE_API_KEY For Pinecone backend
29+
QDRANT_URL For Qdrant backend`,
3030
}
3131

3232
// Execute adds all child commands to the root command and sets flags appropriately.
@@ -41,7 +41,7 @@ func init() {
4141
cobra.OnInitialize(initConfig)
4242

4343
// Global flags
44-
rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.govs.yaml)")
44+
rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.distill.yaml)")
4545
rootCmd.PersistentFlags().Bool("verbose", false, "enable verbose output")
4646

4747
// Bind to viper
@@ -59,7 +59,7 @@ func initConfig() {
5959
}
6060
viper.AddConfigPath(".")
6161
viper.SetConfigType("yaml")
62-
viper.SetConfigName(".govs")
62+
viper.SetConfigName(".distill")
6363
}
6464

6565
// Read environment variables

cmd/serve.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ var serveCmd = &cobra.Command{
2727
for RAG retrieval queries.
2828
2929
Example:
30-
govs serve --port 8080 --backend pinecone --index my-index
30+
distill serve --port 8080 --backend pinecone --index my-index
3131
3232
The server exposes:
3333
POST /v1/retrieve - Deduplicated retrieval endpoint

cmd/sync.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ var syncCmd = &cobra.Command{
2323
and uploads to a Pinecone index using parallel workers.
2424
2525
Example:
26-
govs sync --file data.jsonl --index my-index --dedup=true
26+
distill sync --file data.jsonl --index my-index --dedup=true
2727
2828
Environment Variables:
2929
PINECONE_API_KEY Your Pinecone API key (required)`,

mcp/README.md

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
# GoVectorSync MCP Integration
1+
# Distill MCP Integration
22

3-
GoVectorSync exposes semantic deduplication as an MCP (Model Context Protocol) server, allowing AI assistants to deduplicate context directly.
3+
Distill exposes semantic deduplication as an MCP (Model Context Protocol) server, allowing AI assistants to deduplicate context directly.
44

55
## The Problem
66

77
When AI assistants assemble context from multiple sources (code, docs, memory, tool outputs), 30-40% is typically redundant. Same information from different sources wastes tokens and confuses the model.
88

9-
## How GoVectorSync Helps
9+
## How Distill Helps
1010

11-
GoVectorSync sits between your context sources and the LLM:
11+
Distill sits between your context sources and the LLM:
1212

1313
```
14-
RAG Results → GoVectorSync → Deduplicated Context → LLM
14+
RAG Results → Distill → Deduplicated Context → LLM
1515
```
1616

1717
It clusters semantically similar chunks, picks the best representative from each cluster, and applies MMR for diversity.
@@ -22,17 +22,17 @@ It clusters semantically similar chunks, picks the best representative from each
2222

2323
```bash
2424
# Build
25-
go build -o govs .
25+
go build -o distill .
2626

2727
# Start MCP server
28-
./govs mcp
28+
./distill mcp
2929
```
3030

3131
### Remote (HTTP) - Hosted deployment
3232

3333
```bash
3434
# Start HTTP server
35-
./govs mcp --transport http --port 8081
35+
./distill mcp --transport http --port 8081
3636

3737
# Or deploy to Fly.io
3838
fly deploy -c fly.mcp.toml
@@ -76,11 +76,11 @@ Analyze chunks for redundancy without removing any. Use to understand overlap be
7676

7777
## Resources
7878

79-
### `govectorsync://system-prompt`
79+
### `distill://system-prompt`
8080

8181
System prompt that guides AI assistants to use deduplication effectively. Host applications can include this in context automatically.
8282

83-
### `govectorsync://config`
83+
### `distill://config`
8484

8585
Current configuration and defaults (JSON).
8686

@@ -106,8 +106,8 @@ Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
106106
```json
107107
{
108108
"mcpServers": {
109-
"govectorsync": {
110-
"command": "/path/to/govs",
109+
"distill": {
110+
"command": "/path/to/distill",
111111
"args": ["mcp"]
112112
}
113113
}
@@ -118,8 +118,8 @@ Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
118118
```json
119119
{
120120
"mcpServers": {
121-
"govectorsync": {
122-
"url": "https://govectorsync-mcp.fly.dev/mcp"
121+
"distill": {
122+
"url": "https://distill-mcp.fly.dev/mcp"
123123
}
124124
}
125125
}
@@ -129,8 +129,8 @@ Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
129129
```json
130130
{
131131
"mcpServers": {
132-
"govectorsync": {
133-
"command": "/path/to/govs",
132+
"distill": {
133+
"command": "/path/to/distill",
134134
"args": ["mcp", "--backend", "pinecone", "--index", "my-index"],
135135
"env": {
136136
"PINECONE_API_KEY": "your-api-key",
@@ -165,25 +165,25 @@ fly secrets set PINECONE_API_KEY=xxx -c fly.mcp.toml
165165
fly deploy -c fly.mcp.toml
166166
```
167167

168-
Your MCP endpoint: `https://govectorsync-mcp.fly.dev/mcp`
168+
Your MCP endpoint: `https://distill-mcp.fly.dev/mcp`
169169

170170
### Docker
171171

172172
```bash
173173
# Build
174-
docker build -f Dockerfile.mcp -t govectorsync-mcp .
174+
docker build -f Dockerfile.mcp -t distill-mcp .
175175

176176
# Run
177177
docker run -p 8081:8081 \
178178
-e OPENAI_API_KEY=xxx \
179-
govectorsync-mcp
179+
distill-mcp
180180
```
181181

182182
### Railway / Render / Other
183183

184184
Use the Dockerfile.mcp and set:
185185
- Port: 8081
186-
- Command: `./govs mcp --transport http --port 8081`
186+
- Command: `./distill mcp --transport http --port 8081`
187187

188188
## Integration Patterns
189189

@@ -192,7 +192,7 @@ Use the Dockerfile.mcp and set:
192192
The AI reads the system prompt resource and automatically deduplicates when it detects multiple chunks:
193193

194194
```
195-
1. Host app includes govectorsync://system-prompt in context
195+
1. Host app includes distill://system-prompt in context
196196
2. User asks a question
197197
3. RAG retrieves chunks
198198
4. AI recognizes overlap, calls deduplicate_chunks
@@ -234,7 +234,7 @@ AI: "Found 8 diverse results from 50 retrieved"
234234
The AI decides to call tools based on:
235235

236236
1. **Tool descriptions** - We've written action-oriented descriptions that explain when to use each tool
237-
2. **System prompt** - The `govectorsync://system-prompt` resource guides the AI to check for redundancy
237+
2. **System prompt** - The `distill://system-prompt` resource guides the AI to check for redundancy
238238
3. **User requests** - Explicit requests like "deduplicate these" or "remove redundancy"
239239
4. **Context patterns** - When the AI sees multiple similar chunks, it may recognize the need
240240

@@ -260,8 +260,8 @@ The AI decides to call tools based on:
260260

261261
## Comparison: MCP vs HTTP Proxy
262262

263-
| Aspect | MCP Server | HTTP Proxy (`govs serve`) |
264-
|--------|------------|---------------------------|
263+
| Aspect | MCP Server | HTTP Proxy (`distill serve`) |
264+
|--------|------------|------------------------------|
265265
| Invocation | AI decides when to call | Automatic on every query |
266266
| Integration | MCP-compatible clients | Any HTTP client |
267267
| Use case | AI assistant workflows | RAG pipeline middleware |

0 commit comments

Comments
 (0)