https://api.tokios.com that calls your local model through an outbound-only tunnel. No inbound ports, no port forwarding, no Tailscale setup required. Each teammate gets their own API key scoped to specific models, and you can revoke access for one person without disrupting everyone else.
What you get
- OpenAI-compatible API endpoint — any client that speaks OpenAI SDK works out of the box
- Per-person API keys — each teammate gets their own
sk-tok-…key, scoped to specific models - No networking headaches — the connector dials out, so it works behind CGNAT, Starlink, 5G, apartment ISPs, corporate firewalls
- Model routing — serve multiple models (Ollama, vLLM, llama.cpp) through one endpoint
- Per-key revocation — remove one person’s access without touching anyone else’s
Set it up in 5 steps
1
Install the connector on your model host
On the machine running your model (Ollama, vLLM, llama.cpp, LM Studio), install the Tokios connector:Get your one-time claim code
Linux
macOS
Windows (PowerShell)
TKS-XXXX-XXXX from the dashboard Setup tab. The code expires in about 15 minutes.2
Claim the connector in the dashboard
Back in the dashboard, approve the device on the Setup or Connectors tab. The connector’s token is delivered over the tunnel once approved — you never see it on screen or paste it into a file.Point the connector at your runtime’s local API:
- Ollama:
http://127.0.0.1:11434/v1 - vLLM:
http://127.0.0.1:8000/v1 - llama.cpp:
http://127.0.0.1:8080/v1 - LM Studio:
http://127.0.0.1:1234/v1
3
Register your models as deployments
On the Models tab, map each upstream model id (for example
llama3.1 or qwen2.5:14b) to a public deployment name your team will use, such as team-llama or team-qwen. Clients send this deployment name in the model field of every request, never the upstream id.You can register multiple models from different runtimes behind the same endpoint — see Model routing for details.4
Create API keys for each teammate
On the Keys tab, click Create key for each teammate or app. Scope each key to specific deployment name patterns (comma-separated globs,
* for all) so a teammate only reaches the models you intend.Keys are sk-tok-… Bearer tokens, shown once at creation — copy the key before leaving the page. You can also use the Share Key by email flow to send a one-time reveal link directly to a teammate.See API keys for full details on scoping, sharing, and revocation.5
Share the endpoint and keys with your team
Your team configures their client to use:
- Base URL:
https://api.tokios.com/v1 - API key: their personal
sk-tok-…key - Model: the deployment name you registered (e.g.,
team-llama)
Use it from any client
Key management for teams
One key per person. Don’t share a single key across the team. Per-person keys let you:- Scope access to specific models (a developer gets
team-llamaandteam-qwen, a tester gets onlyteam-llama) - Revoke one person’s access without disrupting everyone else
- Track usage per person (if request logging is enabled)
alice-coding, bob-testing, ci-pipeline, demo-account. You’ll thank yourself when you have 20 keys and need to figure out which one to revoke.
Rotation. Rotate keys periodically (every 90 days is a reasonable default). Create the new key, update the client, then revoke the old one. The Share Key by email flow makes this painless — you send a one-time reveal link, the teammate clicks it, and they see the new key once.
Revocation. On the Keys tab, click Revoke next to the key you want to kill. The key stops working immediately. No need to restart the connector or touch the model host.
Networking: how it works without the headaches
The connector opens an outbound WebSocket tunnel toapi.tokios.com. Your runtime stays on 127.0.0.1 — no inbound ports, no firewall changes, no router config. This means:
- CGNAT? Works. Your ISP puts you behind carrier-grade NAT (Starlink, 5G, apartment buildings)? The connector dials out, so it doesn’t matter — see Serve a local LLM from behind CGNAT for why that’s a router setting you can’t fix yourself.
- Corporate firewall? Usually works. The connector only needs outbound HTTPS (port 443). If your IT team blocks outbound WebSocket, you’ll need an exception — but most corporate firewalls allow it.
- Remote teammates? Works. Your teammate can be on the same LAN, across the country, or on a different continent. They call
https://api.tokios.com/v1with their API key, and the request routes through the tunnel to your local model.
Tokios vs Tailscale vs Cloudflare Tunnel
If you’re already using Tailscale or Cloudflare Tunnel, you might wonder whether you need Tokios at all. The short answer:- Tailscale alone is great for personal multi-device access, but it doesn’t give you per-user API keys, model scoping, or OpenAI-compatible protocol translation. Every device on your tailnet has the same raw access to the runtime. See Tokios vs Tailscale for the full comparison.
- Cloudflare Tunnel works but has SSE buffering and timeout issues that break streaming responses — see Tunnels and streaming for the gory details.
- Tokios is purpose-built for team access to local models: per-user keys, model routing, protocol translation, and a tunnel that handles streaming correctly.
When to use Tokios
Tokios is the right choice when:- You have a local model and your team needs to call it via API
- You want per-person authentication and model scoping
- You’re behind CGNAT or can’t open inbound ports
- You want an OpenAI-compatible endpoint without the networking plumbing
- You’re air-gapped (no internet at all) — the tunnel needs outbound internet
- You’re in a regulated environment that requires on-premises-only infrastructure
- You already have a mature API gateway stack and just need a tunnel — use Cloudflare Tunnel or Tailscale instead
- You only need personal multi-device access — Tailscale alone is simpler
FAQ
Can my team use different models?
Can my team use different models?
Yes. Register multiple deployments (e.g.,
team-llama, team-qwen, team-coder) and scope each API key to the deployments that person should access. A developer might get access to all three, while a tester gets only team-llama.What happens when I swap models?
What happens when I swap models?
You can change the upstream model id for a deployment without touching your team’s client config. They keep calling
team-llama, but the request routes to the new model. This is useful for upgrading models (e.g., llama3.1 → llama3.2) without updating every client.Can I revoke access for one person?
Can I revoke access for one person?
Yes. On the Keys tab, click Revoke next to their key. The key stops working immediately. Other teammates are not affected.
Does this work remotely?
Does this work remotely?
Yes. Your teammate can be anywhere with internet access. They call
https://api.tokios.com/v1 with their API key, and the request routes through the tunnel to your local model. No VPN, no Tailscale, no port forwarding required.What about rate limits?
What about rate limits?
Tokios doesn’t impose rate limits beyond what your hardware can handle. If your model serves 10 requests per second, your team can send 10 requests per second (collectively, not per person). Monitor your runtime’s performance and scale your hardware accordingly.
Can I use this with Ollama, vLLM, llama.cpp, or LM Studio?
Can I use this with Ollama, vLLM, llama.cpp, or LM Studio?
Yes. Tokios works with any runtime that exposes an OpenAI-compatible
/v1 API. That includes Ollama, vLLM, llama.cpp, LM Studio, SGLang, Xinference, and others. See Supported backends for the full list.Next steps
- API keys reference — full details on scoping, sharing, and revocation
- Model routing — serve multiple models through one endpoint
- Tokios vs Tailscale — detailed comparison
- When to use Tokios — decision framework
- Compatible clients — find your client (Open WebUI, Continue, Cline, etc.)