Skip to content

feat(providers): add opencode_free and kilo_free providers#647

Open
Kayphoon wants to merge 1 commit into
fawney19:mainfrom
Kayphoon:feat/opencode-kilo-free-providers
Open

feat(providers): add opencode_free and kilo_free providers#647
Kayphoon wants to merge 1 commit into
fawney19:mainfrom
Kayphoon:feat/opencode-kilo-free-providers

Conversation

@Kayphoon

Copy link
Copy Markdown
Contributor

Summary

Adds two new free-tier provider types for accessing AI models without traditional API keys:

  • opencode_free — connects to OpenCode Zen (https://opencode.ai/zen) using ULID session/request headers (x-opencode-session, x-opencode-request), no Authorization header required
  • kilo_free — connects to Kilo Gateway (https://api.kilo.ai/api/gateway) using a fixed Bearer token free

Key features

  • Both providers auto-create a Default key on provider creation via FixedProviderTemplate reconciliation, so users don't need to manually add keys
  • auto_fetch_models is enabled by default for immediate model discovery
  • Both support openai:chat API format
  • opencode_free model fetch uses a dedicated URL builder to construct /zen/v1/models instead of the default /models path (matching the endpoint's custom_path=/v1 configuration)
  • Backend validation whitelist and frontend provider dropdown updated to accept both types

Files changed

  • Transport layer: new opencode_free/ and kilo_free/ modules in aether-provider-transport (auth, policy, request, URL builders)
  • Pool adapters: new opencode_free.rs and kilo_free.rs in aether-provider-pool (model-only adapters)
  • Model fetch: aether-model-fetch strategy selection + opencode_free URL special case
  • FixedProviderTemplate: FixedProviderKeyTemplate struct + default key reconciliation logic
  • Frontend: provider type dropdown + API format types

Verification

  • cargo test -p aether-provider-transport provider_types::tests:: → 16 passed
  • cargo test -p aether-gateway handlers::admin::provider::write::provider::template::tests → 3 passed
  • cargo test -p aether-model-fetch build_models_fetch_url → 7 passed
  • cargo build --release --bin aether-gateway → passed
  • Local single-port deployment tested: creating fresh opencode_free/kilo_free providers auto-creates Default keys with auto_fetch_models=true; opencode_free discovers 46 models from upstream

@Kayphoon
Kayphoon force-pushed the feat/opencode-kilo-free-providers branch from bc706bf to ee4ec29 Compare June 19, 2026 08:25
…model discovery

Add two new free-tier provider types for accessing AI models without API keys:

- opencode_free: connects to OpenCode Zen (https://opencode.ai/zen) using
  ULID session/request headers, no Authorization header required
- kilo_free: connects to Kilo Gateway (https://api.kilo.ai/api/gateway) using
  a fixed Bearer token "free"

Both providers:
- Auto-create a Default key on provider creation via FixedProviderTemplate
  reconciliation (opencode_free: empty key, kilo_free: key="free")
- Enable auto_fetch_models by default for immediate model discovery
- Support openai:chat API format
- Use model-only pool adapters (no quota_refresh, plan_tier, or quota_reset)

opencode_free model fetch uses a dedicated URL builder to construct
/zen/v1/models instead of the default /models path, matching the endpoint's
custom_path configuration.

Backend validation whitelist and frontend provider dropdown updated to
accept both new provider types.
@Kayphoon
Kayphoon force-pushed the feat/opencode-kilo-free-providers branch from ee4ec29 to bfdbe13 Compare June 19, 2026 08:37
@Kayphoon
Kayphoon marked this pull request as ready for review June 19, 2026 20:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant