swobu

module
v1.1.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 18, 2026 License: AGPL-3.0, AGPL-3.0

README

Swobu

Swobu

Make AI capacity routable.

Swobu is local-first routing infrastructure for AI workloads. Pool capacity across providers, accounts, regions, and local infrastructure behind stable routes. Swobu resolves each workload across eligible targets according to your configured policy.

One route. Many targets. Only eligible capacity runs the workload.

Point Claude Code, Codex, or another supported AI client at one local endpoint. Keep provider URLs, credentials, target ordering, and fallback at the routing boundary—not in every client.

Pool fragmented AI capacity. Route workloads across it.

Simple gateways aggregate endpoints. Simple failover retries elsewhere. Swobu also checks whether a target can represent the workload. It skips an incompatible candidate and keeps walking. If no eligible target remains, Swobu fails explicitly instead of silently dropping tools, reasoning, streaming, or continuation state.

Swobu is beta. Behavior can change between releases.


Install

Install the release:

curl -fsSL https://swobu.com/install.sh | sh

The installer verifies the release and then starts swobu, which opens Cockpit. For provisioning or CI, pass --no-start to install.sh, -NoStart to install.ps1, or set START_SWOBU=false.

The installer provides release binaries for macOS on Intel and Apple silicon, and for Linux on AMD64 and ARM64. It downloads checksums.txt and checks the SHA-256 of the archive before it installs.

If a release binary is not available for your platform, install from source:

go install github.com/swobuforge/swobu/cmd/swobu@master

Open Cockpit:

swobu

swobu attaches to the local daemon, or starts it, and then opens Cockpit.

Use the same startup controls as swobu daemon when you need a different loopback address or config file:

swobu --addr 127.0.0.1:9000 --config ./swobu.yaml

The equivalent environment controls are SWOBU_ADDR and SWOBU_CONFIG_PATH. Explicit flags win over environment values.

Check the daemon:

swobu status

Stop the daemon:

swobu daemon down

Configure a supported local client through the same Workspace Connect operation used by Cockpit:

swobu connect codex
swobu connect claude
swobu connect kilo
swobu connect pi
swobu connect openclaw
swobu connect hermes

Use --workspace <name> when multiple workspaces exist, --addr <host:port> for another loopback daemon address, and --replace only to replace existing different client configuration.

You can leave the daemon running between Cockpit sessions.


First route in Cockpit

Open Cockpit, then:

  1. Add or select a workspace.
  2. Add one route. The first route becomes the default route.
  3. Add one target to the route.
  4. Select a provider for the target.
  5. Set the connection, the model, and the credential reference.
  6. Open the workspace endpoint row to connect a client or copy the workspace URL.

Each workspace has one default route. The model value default selects it. A different non-empty model value that does not match a route also selects it. An empty model value causes an error.


Connect a client

In Cockpit, open the workspace's endpoint row. Eligible Codex CLI, Claude Code, Kilo Code, pi, OpenClaw, and Hermes Agent installations appear as direct rows. Select one, review the backend, endpoint, protocol, or capability leaves that actually change, and apply them. Cockpit reports configured after the configuration update succeeds.

For every other client, use Other clients to copy the canonical workspace URL:

http://127.0.0.1:7926/c/<workspace>

Use that value as the client's Base URL or Endpoint. Swobu accepts bare and /v1-prefixed operation paths for Responses, Chat Completions, Messages, and Models, so /v1 is compatibility spelling rather than workspace identity. A particular client may still impose its own validation or require a complete operation URL; named integrations are added only after their root-URL contract is verified.

If a client needs an API key field, use a non-secret placeholder such as swobu. Provider credentials stay in Swobu. Do not put a real provider credential in the client configuration.


Current interfaces

These are the interfaces Swobu currently exposes. An interface being available does not imply that every protocol-specific semantic can be translated across every client/backend pair. Unsupported whole-output contracts and unresolved provider effects fail explicitly.

Tested clients
  • Claude Code
  • Codex CLI
  • Continue
  • OpenAI-family clients
  • Anthropic-family clients
Supported backends
  • OpenAI
  • Anthropic
  • DeepSeek
  • Z.AI
  • Azure AI
  • AWS Bedrock
  • OpenRouter
  • Ollama
  • LM Studio
  • vLLM
  • ChatGPT
  • OpenAI/Anthropic Compatible Endpoints
Request families
  • OpenAI: /chat/completions and /responses, with their /v1 forms
  • Anthropic: /messages, with its /v1 form
  • Discovery: /models, with its /v1 form (GET only)
Streaming
  • Server-Sent Events
  • WebSocket on /responses only

The Swobu routing model

workspace
  route        client-visible model name
    tier       primary, or ordered fallback
      target   provider + connection + model + protocol + credential

A workspace gives one client context its own endpoint. A route is the model name that the client sends. A tier is a set of targets at the same priority. A target is one concrete backend.

Swobu does not make providers or deployments the same. Model behavior, protocol support, limits, and errors can differ between targets. Swobu controls these differences at one boundary. Swobu does not hide them.


Security and privacy

Swobu is local-first: it binds to loopback by default (127.0.0.1:7926) and keeps control traffic on your machine. It sends minimal operational telemetry — aggregate counts tied to a random installation id (not your account or machine) and the client product token, such as claude-code/1.0.0. It never sends prompts, completions, credentials, model output, or request bodies. Turn it off with swobu telemetry off or DO_NOT_TRACK. Local-first is not offline-only; if you route to a hosted backend, the request still goes to that backend.


Known gaps

  • Protocol-specific behavior varies by client and backend. Swobu preserves portable semantics, skips a target that cannot represent the request, and rejects operations whose authority or result contract cannot be preserved. Surfacing the per-target reason for a skip is direction, not shipped; today only the terminal outcome is visible.
  • Some clients need specific environment variables.
  • Token and cache fields that providers report are not uniform.
  • Swobu changes candidate target order; it does not read live provider quota, remaining TPM, or latency.
  • The release installer covers Linux and macOS on AMD64 and ARM64 only.


Discuss your routing setup

If your model capacity is split across providers, regions, accounts, or local infrastructure, we will help you map your routes, balance capacity, and configure failover. Visit swobu.com/discuss/.


Contributing and security reporting

We welcome contributions. Read CONTRIBUTING.md before you open a pull request.

Swobu uses a Contributor License Agreement (CLA.md). When you submit a contribution, you agree to the terms in CLA.md.

For security vulnerabilities, do not report in public issues. Read SECURITY.md before reporting.


Development history

Swobu was reimplemented from the ground up during OpenAI Build Week using Codex with GPT-5.6. An earlier prototype established the idea, but none of its implementation remains.

During the hackathon, the daemon and Cockpit were rebuilt around a clean architecture, tiered routing and capability-aware fallback were added, and testing, linting, and visual verification were strengthened.

Codex and GPT-5.6 completed much of the code implementation while product semantics and architectural rails were defined in RFCs.


License

Swobu uses the AGPL-3.0-only license. Read LICENSE.

Directories

Path Synopsis
cmd
swobu command
internal
adapters/inbound/cli
Package cli implements the operator-facing entrypoint and daemon namespace.
Package cli implements the operator-facing entrypoint and daemon namespace.
adapters/inbound/httpapi
Package httpapi implements the client-facing HTTP protocol surface.
Package httpapi implements the client-facing HTTP protocol surface.
adapters/outbound/credentials
Package credentials owns credential resolution adapters.
Package credentials owns credential resolution adapters.
adapters/outbound/httpedge
Package httpedge owns outbound provider HTTP-edge helpers only: URL join, content-encoding decode, exact media-type recognition, and backend error materialization.
Package httpedge owns outbound provider HTTP-edge helpers only: URL join, content-encoding decode, exact media-type recognition, and backend error materialization.
adapters/outbound/media
Package media owns credential-free, policy-bounded image materialization for provider-attempt preparation.
Package media owns credential-free, policy-bounded image materialization for provider-attempt preparation.
adapters/outbound/modelcatalog/openai
Package openai owns model-catalog wire decoding for OpenAI-style /models responses shared by multiple providers.
Package openai owns model-catalog wire decoding for OpenAI-style /models responses shared by multiple providers.
adapters/outbound/providers
Package providers owns the outbound provider namespace registry and dispatch.
Package providers owns the outbound provider namespace registry and dispatch.
adapters/outbound/providers/anthropic
Package anthropic owns the shared x-api-key Messages transport used by Anthropic-compatible provider profiles.
Package anthropic owns the shared x-api-key Messages transport used by Anthropic-compatible provider profiles.
adapters/outbound/providers/azure
Package azure wires the Azure provider ID to the shared OpenAI-compatible and Anthropic family kernels.
Package azure wires the Azure provider ID to the shared OpenAI-compatible and Anthropic family kernels.
adapters/outbound/providers/bedrock
Package bedrock wires the AWS Bedrock Mantle OpenAI-compatible endpoint behind one provider adapter edge.
Package bedrock wires the AWS Bedrock Mantle OpenAI-compatible endpoint behind one provider adapter edge.
adapters/outbound/providers/cerebras
Package cerebras binds Cerebras hosted inference to shared OpenAI-family discovery, transport, and Chat grammar.
Package cerebras binds Cerebras hosted inference to shared OpenAI-family discovery, transport, and Chat grammar.
adapters/outbound/providers/chatgpt
swobu:lint ignore file-length because=provider edge behavior is intentionally localized in one executor owner seam
swobu:lint ignore file-length because=provider edge behavior is intentionally localized in one executor owner seam
adapters/outbound/providers/deepinfra
Package deepinfra composes the fixed DeepInfra API contract around shared OpenAI-family transport and Chat Completions grammar.
Package deepinfra composes the fixed DeepInfra API contract around shared OpenAI-family transport and Chat Completions grammar.
adapters/outbound/providers/deepseek
Package deepseek binds DeepSeek's Anthropic-compatible generation endpoint to the shared Messages transport and owns its distinct root model discovery.
Package deepseek binds DeepSeek's Anthropic-compatible generation endpoint to the shared Messages transport and owns its distinct root model discovery.
adapters/outbound/providers/fireworks
Package fireworks binds Fireworks' documented Responses refinements to the shared OpenAI-family provider kernel.
Package fireworks binds Fireworks' documented Responses refinements to the shared OpenAI-family provider kernel.
adapters/outbound/providers/friendli
Package friendli owns FriendliAI's provider-local composition around the shared OpenAI-family transport and standard protocol grammars.
Package friendli owns FriendliAI's provider-local composition around the shared OpenAI-family transport and standard protocol grammars.
adapters/outbound/providers/gemini
Package gemini owns the private native Gemini Interactions adapter.
Package gemini owns the private native Gemini Interactions adapter.
adapters/outbound/providers/gmi
Package gmi composes GMI Cloud's documented provider-edge refinements around shared OpenAI-family transport and standard protocol codecs.
Package gmi composes GMI Cloud's documented provider-edge refinements around shared OpenAI-family transport and standard protocol codecs.
adapters/outbound/providers/groq
Package groq adapts Groq's documented Chat reasoning request/response and capacity carriers around shared OpenAI-family transport, catalog discovery, and protocol grammar.
Package groq adapts Groq's documented Chat reasoning request/response and capacity carriers around shared OpenAI-family transport, catalog discovery, and protocol grammar.
adapters/outbound/providers/kimi
Package kimi owns Kimi's small Chat Completions dialect: three-bin effort projection and opaque reasoning_content capture/replay.
Package kimi owns Kimi's small Chat Completions dialect: three-bin effort projection and opaque reasoning_content capture/replay.
adapters/outbound/providers/llm7
Package llm7 binds LLM7's selector-based Chat service to the shared OpenAI-family transport.
Package llm7 binds LLM7's selector-based Chat service to the shared OpenAI-family transport.
adapters/outbound/providers/mistral
Package mistral binds the direct Mistral Chat API to shared Chat Completions transport and grammar.
Package mistral binds the direct Mistral Chat API to shared Chat Completions transport and grammar.
adapters/outbound/providers/modelscope
Package modelscope composes ModelScope API-Inference with the shared OpenAI-family runtime and decorates only its documented reasoning_content response carrier.
Package modelscope composes ModelScope API-Inference with the shared OpenAI-family runtime and decorates only its documented reasoning_content response carrier.
adapters/outbound/providers/novita
Package novita binds Novita AI's managed and deployment Chat surface to the shared OpenAI-family runtime.
Package novita binds Novita AI's managed and deployment Chat surface to the shared OpenAI-family runtime.
adapters/outbound/providers/openai
Package openai binds the openai provider id to the shared OpenAI-family provider kernel.
Package openai binds the openai provider id to the shared OpenAI-family provider kernel.
adapters/outbound/providers/openaifamily
selection, wire realization, and response decoding in one outbound seam.
selection, wire realization, and response decoding in one outbound seam.
adapters/outbound/providers/openrouter
Package openrouter binds the OpenRouter provider ID to the shared OpenAI-family transport kernel and owns the provider's exact request dialects.
Package openrouter binds the OpenRouter provider ID to the shared OpenAI-family transport kernel and owns the provider's exact request dialects.
adapters/outbound/providers/protocolcodec
Package protocolcodec composes reusable wire-family grammar, including narrow Chat response carrier composition, into exact provider codecs.
Package protocolcodec composes reusable wire-family grammar, including narrow Chat response carrier composition, into exact provider codecs.
adapters/outbound/providers/runpod
Package runpod binds Runpod OpenAI-compatible inference to the shared OpenAI-family transport.
Package runpod binds Runpod OpenAI-compatible inference to the shared OpenAI-family transport.
adapters/outbound/providers/runtime
Package runtime owns provider-facet role contracts and runtime bundle wiring for the outbound provider namespace.
Package runtime owns provider-facet role contracts and runtime bundle wiring for the outbound provider namespace.
adapters/outbound/providers/sambanova
Package sambanova adapts the documented SambaNova Messages thinking carrier around shared protocol grammars and OpenAI-family transport.
Package sambanova adapts the documented SambaNova Messages thinking carrier around shared protocol grammars and OpenAI-family transport.
adapters/outbound/providers/scaleway
Package scaleway adapts documented Scaleway Generative APIs differences around shared OpenAI-family transport and protocol grammars.
Package scaleway adapts documented Scaleway Generative APIs differences around shared OpenAI-family transport and protocol grammars.
adapters/outbound/providers/siliconflow
Package siliconflow binds SiliconFlow's fixed Bearer inference origin to shared Chat and Messages grammar.
Package siliconflow binds SiliconFlow's fixed Bearer inference origin to shared Chat and Messages grammar.
adapters/outbound/providers/together
Package together binds Together AI's one Chat Completions inference API to the shared OpenAI-family transport.
Package together binds Together AI's one Chat Completions inference API to the shared OpenAI-family transport.
adapters/outbound/providers/workersai
Package workersai binds Cloudflare-hosted Workers AI to shared Chat and Responses codecs.
Package workersai binds Cloudflare-hosted Workers AI to shared Chat and Responses codecs.
adapters/outbound/providers/zai
Package zai owns the two-access Z.AI provider and its demonstrated divergences from standard Chat Completions request grammar.
Package zai owns the two-access Z.AI provider and its demonstrated divergences from standard Chat Completions request grammar.
adapters/outbound/trafficevidence
Package trafficevidence stores immutable traffic events and derives small operator-facing projections from them.
Package trafficevidence stores immutable traffic events and derives small operator-facing projections from them.
app
Package app is the namespace root for Swobu application-layer use cases.
Package app is the namespace root for Swobu application-layer use cases.
app/operator/authplane
Package authplane owns daemon-side operator auth session lifecycle orchestration.
Package authplane owns daemon-side operator auth session lifecycle orchestration.
app/operator/chatgptlogin
Package chatgptlogin owns daemon-side operator login-session orchestration for ChatGPT subscription login.
Package chatgptlogin owns daemon-side operator login-session orchestration for ChatGPT subscription login.
app/operator/client
Runtime lane: daemon HTTP client behavior and transport orchestration.
Runtime lane: daemon HTTP client behavior and transport orchestration.
app/operator/daemonlifecycle
Package daemonlifecycle owns operator-facing local daemon lifecycle facts shared across CLI and cockpit adapters.
Package daemonlifecycle owns operator-facing local daemon lifecycle facts shared across CLI and cockpit adapters.
app/operator/workspaces
Package workspaces owns operator queries and semantic commands over the latest routing aggregate.
Package workspaces owns operator queries and semantic commands over the latest routing aggregate.
bootstrap
dependency wiring, and control-plane serving in one process seam.
dependency wiring, and control-plane serving in one process seam.
carrier
Package carrier defines typed exchange-carrier contracts used by exchange orchestration seams.
Package carrier defines typed exchange-carrier contracts used by exchange orchestration seams.
clientconnect
Package clientconnect discovers and surgically rewires supported local AI clients to one canonical, unversioned workspace URL.
Package clientconnect discovers and surgically rewires supported local AI clients to one canonical, unversioned workspace URL.
cockpit
Package cockpit is the active operator-facing TUI surface for Swobu.
Package cockpit is the active operator-facing TUI surface for Swobu.
cockpit/adapters
Package adapters translates daemon operator control-plane data into Cockpit ports and read models.
Package adapters translates daemon operator control-plane data into Cockpit ports and read models.
cockpit/features/target_config
Package target_config owns the mounted component for creating and editing route targets.
Package target_config owns the mounted component for creating and editing route targets.
cockpit/features/workspace_connect
Package workspace_connect owns the inline workspace endpoint disclosure, client mutation preview lifecycle, and the canonical Other clients copy row.
Package workspace_connect owns the inline workspace endpoint disclosure, client mutation preview lifecycle, and the canonical Other clients copy row.
cockpit/features/workspace_delete
Package workspace_delete owns the inline workspace deletion confirmation.
Package workspace_delete owns the inline workspace deletion confirmation.
cockpit/features/workspace_edit
Package workspace_edit owns the operator-facing workspace name lifecycle row.
Package workspace_edit owns the operator-facing workspace name lifecycle row.
cockpit/mountedrender
Package mountedrender renders go-tui components through a seeded App without entering a real terminal.
Package mountedrender renders go-tui components through a seeded App without entering a real terminal.
cockpit/pages/workspace
Package workspace renders the Cockpit page for one selected Swobu workspace.
Package workspace renders the Cockpit page for one selected Swobu workspace.
cockpit/ports
Package ports defines the narrow Cockpit command and query boundaries.
Package ports defines the narrow Cockpit command and query boundaries.
cockpit/readmodel
Package readmodel defines the Cockpit-owned projection consumed by go-tui surfaces, sections, fixtures, and adapter ports.
Package readmodel defines the Cockpit-owned projection consumed by go-tui surfaces, sections, fixtures, and adapter ports.
cockpit/sections/activity
Package activity renders Cockpit request activity rows and expanded trace detail.
Package activity renders Cockpit request activity rows and expanded trace detail.
cockpit/sections/routes
Package routes renders Cockpit route rows and expanded target detail.
Package routes renders Cockpit route rows and expanded target detail.
cockpit/sections/workspace_overview
Package workspace_overview renders the Cockpit workspace overview section.
Package workspace_overview renders the Cockpit workspace overview section.
cockpit/testkit
Part of testscreen family: surface=cockpit
Part of testscreen family: surface=cockpit
cockpit/ui
ui provides shared selection and entry primitives for cockpit.
ui provides shared selection and entry primitives for cockpit.
cockpit/ui/interaction
Package interaction owns Cockpit's low-level go-tui interaction grammar.
Package interaction owns Cockpit's low-level go-tui interaction grammar.
compat
Package compat owns non-exact semantic changes returned by concrete lowerings.
Package compat owns non-exact semantic changes returned by concrete lowerings.
configstore
Package configstore owns Swobu's only durable routing configuration format and transactional local file store.
Package configstore owns Swobu's only durable routing configuration format and transactional local file store.
domain/cachelocality
Package cachelocality owns portable cache locality: an opaque key used to prefer a cache domain for requests expected to reuse provider prompt state.
Package cachelocality owns portable cache locality: an opaque key used to prefer a cache domain for requests expected to reuse provider prompt state.
domain/canonical
Package canonical owns Swobu's ordered semantic request and response grammar.
Package canonical owns Swobu's ordered semantic request and response grammar.
domain/historyfingerprint
Package historyfingerprint owns opaque, protocol-scheme fingerprints for completed client-visible history and its ordered request/response leaves.
Package historyfingerprint owns opaque, protocol-scheme fingerprints for completed client-visible history and its ordered request/response leaves.
domain/trafficevidence
Package trafficevidence owns immutable traffic facts about request handling.
Package trafficevidence owns immutable traffic facts about request handling.
exchange
Package exchange is the request-path orchestration bounded context.
Package exchange is the request-path orchestration bounded context.
exchange/codecresolver
Package codecresolver composes wire protocol family codecs into a RuntimeCodecResolver that satisfies the exchange.RuntimeResolver interface.
Package codecresolver composes wire protocol family codecs into a RuntimeCodecResolver that satisfies the exchange.RuntimeResolver interface.
mcp
Package mcp owns Swobu's client-executed, request-scoped URL MCP lifecycle.
Package mcp owns Swobu's client-executed, request-scoped URL MCP lifecycle.
platform/browser
Package browser opens URLs in the system default browser.
Package browser opens URLs in the system default browser.
platform/clipboard
Package clipboard provides best-effort system clipboard access for the Cockpit operator surface: copy diagnostics, copy endpoint URLs, etc.
Package clipboard provides best-effort system clipboard access for the Cockpit operator surface: copy diagnostics, copy endpoint URLs, etc.
platform/config
Package config owns process startup preferences and pure platform path resolution.
Package config owns process startup preferences and pure platform path resolution.
platform/httpcontent
Package httpcontent owns transport-level HTTP content-coding helpers used at the client and provider-execution edges.
Package httpcontent owns transport-level HTTP content-coding helpers used at the client and provider-execution edges.
platform/outboundhttp
Package outboundhttp owns production net/http network transport construction.
Package outboundhttp owns production net/http network transport construction.
producttelemetry
Package producttelemetry owns local operator-facing product-telemetry state, the first-run notice, and the closed product-report path: the client and provider classifiers, the report reducer, and the JSON uploader.
Package producttelemetry owns local operator-facing product-telemetry state, the first-run notice, and the closed product-report path: the client and provider classifiers, the report reducer, and the JSON uploader.
profile
Package profile owns the canonical provider descriptor catalog used by domain validation and operator-facing setup surfaces.
Package profile owns the canonical provider descriptor catalog used by domain validation and operator-facing setup surfaces.
provider
Package provider defines the inward contract between exchange orchestration and exact outbound provider backends.
Package provider defines the inward contract between exchange orchestration and exact outbound provider backends.
routing
Package routing owns the immutable workspace/route/tier/target aggregate, whole-value invariants, semantic edits, default-compatible route resolution, and deterministic ordered target-plan construction.
Package routing owns the immutable workspace/route/tier/target aggregate, whole-value invariants, semantic edits, default-compatible route resolution, and deterministic ordered target-plan construction.
session
Package session owns immutable canonical checkpoints and linear client-session heads used to resume one logical model session across independent requests.
Package session owns immutable canonical checkpoints and linear client-session heads used to resume one logical model session across independent requests.
testkit/canonicaltest
Package canonicaltest provides checked canonical fixtures for non-canonical tests.
Package canonicaltest provides checked canonical fixtures for non-canonical tests.
testkit/providertest
Package providertest provides checked provider-attempt fixtures.
Package providertest provides checked provider-attempt fixtures.
wire
Package wire is the Swobu wire-protocol translation bounded context.
Package wire is the Swobu wire-protocol translation bounded context.
wire/chatcompletions
translation in one place so request and stream semantics stay recoverable.
translation in one place so request and stream semantics stay recoverable.
wire/framing/sse
Package sse owns shared JSON framing helpers used by wire adapters.
Package sse owns shared JSON framing helpers used by wire adapters.
wire/messages
translation in one place so request and stream semantics stay recoverable.
translation in one place so request and stream semantics stay recoverable.
wire/openai
Package openai owns shared OpenAI-style wire compatibility helpers.
Package openai owns shared OpenAI-style wire compatibility helpers.
wire/reasoningprojection
Package reasoningprojection lowers canonical reasoning controls into the provider-neutral ordinal field shared by standard OpenAI-shaped protocols.
Package reasoningprojection lowers canonical reasoning controls into the provider-neutral ordinal field shared by standard OpenAI-shaped protocols.
wire/responses
swobu:lint ignore file-length because=Responses request decoding keeps the protocol DTO-to-canonical boundary cohesive
swobu:lint ignore file-length because=Responses request decoding keeps the protocol DTO-to-canonical boundary cohesive
wire/shared
Package shared owns wire-adapter helper code that is family-neutral.
Package shared owns wire-adapter helper code that is family-neutral.
wire/toolname
Package toolname owns the flat provider tool-name spelling grammar.
Package toolname owns the flat provider tool-name spelling grammar.
testscreen
assert
Package screenassert owns declarative screen predicates over testscreen/buf.View.
Package screenassert owns declarative screen predicates over testscreen/buf.View.
buf
Package buf owns the read-only terminal screen buffer contract for tests.
Package buf owns the read-only terminal screen buffer contract for tests.
diff
Package diff owns visual diff semantics over testscreen/buf.View.
Package diff owns visual diff semantics over testscreen/buf.View.
fixture
Package fixture owns deterministic fixture-backed visual comparison for terminal screen snapshots.
Package fixture owns deterministic fixture-backed visual comparison for terminal screen snapshots.
tempo
Package tempo owns runtime-agnostic temporal test affordance policies.
Package tempo owns runtime-agnostic temporal test affordance policies.
testpath
Package testscreen/testpath owns canonical test-id tokenization and path derivation shared across testscreen consumers.
Package testscreen/testpath owns canonical test-id tokenization and path derivation shared across testscreen consumers.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL