Skip to content
10 changes: 6 additions & 4 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,10 +161,12 @@ make ci # Full CI suite
| Main test file | `provider/client_test.go` (httptest servers, provider detection) |
| Linter config | `.golangci.yml` (govet, ineffassign, misspell — minimal) |

This is an independent repository consumed by Reflect. In the local
`graycode-eco` parent workspace it is checked out beside `reflect` as `../relay`
and connected through the parent `go.work`; publish changes here, then update
Reflect's module pin through a separate PR.
Relay is an independent open-source GrayCodeAI project that any application can
consume. Reflect is one host, with its own repository, build, version, and release.
Relay does not depend on Reflect. Optional coordinated development uses a
gitignored module overlay in the host; no parent `go.work` or sibling checkout
is required. Publish Relay changes independently, then consumers update their
module pins through their own release processes.

## Cloudflare

Expand Down
13 changes: 9 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,16 @@

## What is relay

relay is the LLM provider runtime that powers the [reflect](https://github.com/GrayCodeAI/reflect) coding agent. It handles everything between your application and LLM APIs — authentication, model resolution, streaming, retries, rate limiting, and caching.
Relay is an independent open-source LLM provider runtime from GrayCodeAI, built
for any application that needs model access. It handles authentication, model
resolution, streaming, retries, rate limiting, and caching.

When your app calls a model, relay figures out which provider to use, how to talk to it, and how to stream the response back. Switch from Anthropic to Ollama? relay handles the translation. API returns 529? relay retries with backoff. Response hits `max_tokens`? relay continues automatically.

**Your app never talks to an LLM API directly. relay does.**

Reflect is the product face: it owns UX, agent orchestration, tools, permissions,
The [Reflect](https://github.com/GrayCodeAI/reflect) coding agent is one consumer:
it owns UX, agent orchestration, tools, permissions,
sessions, and product semantics. Relay is the provider engine: it owns
credentials, catalog and route resolution, provider transports, normalized
streams, retry/fallback, usage, and provider telemetry. Reflect integrates through
Expand All @@ -45,7 +48,9 @@ provider packages.

## Ecosystem Boundaries

relay is a Reflect support engine. Keep the dependency edge one-way.
Relay and Reflect are independently usable, versioned, and released projects.
Relay has no dependency on Reflect. Any host application can integrate through
Relay's public API; agent behavior and product UX belong to that host.

Hosts may import exactly four packages:

Expand Down Expand Up @@ -361,7 +366,7 @@ tool-call count, and deployment-routing state remain queryable.

## Ecosystem

relay is part of the graycode-eco:
GrayCodeAI maintains these independent open-source projects:

| Component | Repository | Purpose |
|---|---|---|
Expand Down
Loading