Skip to content

Provider catalogue

Every provider in omnifs answers exactly three operations: lookup-child, list-children, and read-file. Those map directly to ls and cat at any path the provider exposes. The wire protocol does not change between providers. If you know how to read a file, you already know how to use every provider in this catalogue.

A provider is a WASM component (wasm32-wasip2) that implements the omnifs:provider@1.0.0 WIT interface. The host runtime loads it at mount time. The provider never opens its own socket and never touches credentials directly: the host holds credentials and gates every external callout through an explicit capability. Adding a new provider does not require recompiling the runtime.

The host maintains a capacity-bounded cache, invalidated by upstream events rather than TTLs. Inodes are stable across upstream renames, so tools that track paths (watchers, tail -f, agent loops) do not lose their footing when a resource moves.

Each provider page is structured the same way:

  • Mount: the omnifs.toml stanza that registers the provider under a mount point.
  • Path schemes: every path the provider exposes, annotated with whether it responds to ls, cat, or both.
  • Config: the fields that go in the mount stanza, with types and required/optional status.
  • Examples: runnable commands against real paths, with the output you should see.

The same ls and cat verbs work everywhere. The only thing that changes is the path prefix.

Five providers are available today.

ProviderMount prefixWhat it exposes
GitHub/githubRepos, issues, PRs, CI runs
Docker/dockerContainers, compose projects, system info
arXiv/arxivPapers, metadata, category feeds, search
Linear/linearTeams, issues, priorities, assignees
DNS/dnsA, AAAA, MX, NS, TXT and other record types; reverse lookups; per-query resolver selection

Quick sample across all five, from a single shell:

Terminal window
# GitHub: list open issues in a repo
ls /omnifs/github/ollama/ollama/_issues/_open
# Docker: check a container's state
cat /omnifs/docker/containers/by-name/postgres/state
# arXiv: read paper metadata
cat /omnifs/arxiv/papers/1706.03762/metadata.json | jq .title
# Linear: list open issues for a team
ls /omnifs/linear/teams/ENG/issues/_open
# DNS: look up MX records
cat /omnifs/dns/example.com/MX

Thirteen providers are under active development. None are ready to use. They are listed here so you can track progress or contribute.

ProviderMount prefixNotes
Hugging Face/hfModels, datasets, spaces
Kubernetes/k8sPods, namespaces, per-context
Postgres/pgTables as directories, rows as files
Slack/slackChannels, threads, latest messages
Redis/redisKeys projected as files
S3/s3Buckets and object trees
Stripe/stripeCustomers, charges, subscriptions
Cloudflare/cloudflareZones, DNS, Workers
Vercel/vercelProjects, deployments
OCI/ociContainer image layers
MCP/mcpMCP server tools, resources, and prompts as files
Spotify/spotifyPlaylists, tracks, playback state
Discord/discordGuilds, channels, messages

Providers are self-contained WASM components. If a service you care about is missing, you can write a provider for it without touching the omnifs runtime. See Build a provider for the WIT interface, the component scaffolding, and how to register a local build in omnifs.toml.

Pull requests are open. The five live providers are the best reference implementations.