VPR Desktop Guide
The AntSeed Virtual Private Router (VPR) is like a VPN for AI: your AI apps connect to one local router, while the VPR discovers available sellers, applies your routing preferences, and sends each compatible request through the selected route. You can change models or sellers without reconfiguring every connected tool.
The VPR also manages pay-per-request settlement from your AntSeed credits, so connected tools can use network sellers without maintaining a separate AntSeed subscription or central AI account.
This guide follows the VPR interface from first launch through troubleshooting. For a protocol-level introduction, see How AntSeed works.
Start the router
Use the power button on the Home screen to start or stop the local router. Once it is running, the status area shows network health, the local proxy port, and the number of visible peers and services.
Discovery is not instant. After startup, allow a few seconds for peer announcements and model offers to arrive. Open Models and use Refresh models if the catalog still appears empty.
The VPR runs locally, but the AI service is delivered by the seller selected for each route. AntSeed does not put a central account or hosted chat service between the VPR and that seller.
Choose a model and seller
Open Models to browse the services currently advertised on the network. The catalog shows live seller availability, offered prices, and expected savings where a retail comparison is available.
Selecting a model sets the route used by new sessions. Existing conversations may retain their current model or seller affinity so they can continue consistently.
Automatic seller selection
With Auto select seller enabled, the VPR ranks eligible sellers using your routing preferences and current network information. The selection can account for:
- Minimum trust score
- Price preference and hard maximum pricing
- Free-service preference
- Recent route failures and cooldowns
- Whether the seller offers the requested model and API format
Automatic routes can fail over after retryable seller or transport failures. A conversation normally prefers the seller that served it successfully, but that affinity is not a hard pin.
Pin a seller
Pin a seller when you need a fixed route. A pin overrides automatic seller selection and does not fail over to another peer. Remove the pin before troubleshooting availability or performance problems with that seller.
Seller reputation is an input to routing, not a guarantee about model quality, privacy, or future availability. See Reputation for the protocol-level scoring model.
Set routing preferences
Open Preferences to control automatic routing across models:
- Minimum trust score excludes sellers below the selected threshold.
- Price preference strongly penalizes offers above the preferred input-token price.
- Maximum pricing is the hard spending cap when configured.
- Prefer free peers gives zero-cost eligible routes a strong ranking advantage.
Turning automatic selection off leaves connected apps on their last selected route. It does not automatically choose a replacement if that pinned route becomes unavailable.
Chat inside the VPR
The VPR includes its own chat interface, so you can use network models without opening another tool. Type in Ask anything. On any model... on Home to start a conversation with the currently selected model.
Choose a model for the conversation
The model picker in the chat header controls the active conversation. If the conversation already contains messages, the VPR asks whether to continue that thread on the new model or start a new chat so the existing thread keeps its current model.
Use New chat to start a clean conversation with the same current model. The View chats control opens the conversation list; from there you can return to previous chats, search within the active conversation, and manage the chat history stored by the VPR.
Conversations keep their own route
Changing the global model affects new sessions. An existing conversation keeps its own model until you deliberately change it. This prevents changing the Home picker from unexpectedly moving every active conversation.
The internal chat and connected-tool conversations use the same model catalog, Price + Trust preferences, seller routing, credits, and payment channels.
Connect an AI app
Open Connected apps and select a detected tool. Depending on the application, the VPR connects it by updating a supported configuration file or by routing its API domains through the local proxy.
The tool keeps its normal interface. Its compatible AI requests are sent to the local VPR endpoint, translated when necessary, and routed to the selected AntSeed seller.
Some config-file integrations must be restarted before they read their updated settings. When the app row shows Restart, use that action before testing the connection.
For manual endpoints, SDK examples, and supported wire formats, see Using the API. Tool-specific setup is available from the Integrations directory.
App settings
Use the gear on an app row to choose which installed application the VPR opens, manage the client names used to attribute conversations, or disconnect and remove the integration.
For config-file integrations, the VPR keeps a backup beside the original config and removes its changes when you disconnect. For HTTPS proxy integrations, disconnecting stops the local interception for that app.
Trust the local HTTPS certificate
Some connected apps use HTTPS endpoints that the local proxy must intercept on your device. For those apps, the VPR generates a local certificate authority and asks the operating system to trust it.
The certificate is generated locally and its private key does not leave your computer. You can inspect or reveal the certificate from Connected apps. If an intercepted app reports an SSL or certificate error, trust the current certificate and restart the app.
Only apps connected through HTTPS interception need this certificate. Config-file integrations that point directly to the local VPR API do not.
Manage connected-tool conversations
After a connected app sends a request, its conversation appears under Recent chats on Home, Connected apps, and the floating window. Open the full Chats view from the Recent chats card to manage them.
Each conversation keeps the model that served it. This lets one Claude Code, Codex, or other tool session stay on one model while another session uses a different model.
Select a model for one conversation
- Open Recent chats and select the conversation.
- Choose the model that conversation should use.
- Return to the connected tool and continue the same session.
Changing a conversation's model does not change the default model for new sessions or the models assigned to other conversations.
Select a specific seller for one conversation
Each model row in a conversation has settings for its seller route:
- Leave Auto select seller on to use your Price + Trust preferences and automatic failover.
- Turn it off to keep the seller currently serving the conversation.
- Select a seller row to pin that exact seller for the conversation.
- Select the pinned seller again, or turn automatic selection back on, to return the conversation to automatic routing.
A seller pin applies only to that conversation. It does not change the global seller choice for the model or other chats.
Rename, open, or delete a conversation
The conversation detail page lets you rename a chat, open the connected application it belongs to, or delete its stored entry. If the external tool session is still active, a deleted entry can appear again when that tool sends its next request.
Use the floating window
The floating window stays above your other apps so routing information and conversation controls remain available while you work. It shows your balance, the active model, and current token and cost activity.
The status dot is red when routing is stopped, steady while the router is ready, and pulses while request traffic is moving. A conversation receiving traffic also displays an activity pulse in the conversation menu.
Open the menu to:
- Change the default model used by new sessions
- Select a recent conversation and change only its model
- Open the connected app that owns a conversation
- See the model assigned to each conversation
- See the seller that actually served the conversation when Show routed peer is enabled
Floating-window preferences
Open Preferences → Floating window to control its behavior:
- Show on traffic opens the floating window automatically when a connected app begins sending requests.
- Show routed peer displays the seller that actually served each conversation in Recent chats, the internal chat list, and the floating window.
You can still open or close the floating window manually. Closing it does not stop the router, disconnect apps, or end active conversations.
Privacy, transport, and seller trust
The VPR is anonymous by default. There is no central AntSeed account, platform-issued API key, or personal profile attached to your requests. Sellers generally receive a pseudonymous peer or wallet identity rather than your name, email, or identity on the tools you connected.
Anonymous access
Identity anonymity and request content are separate. A standard seller can process the prompt it serves, but AntSeed does not tell the seller who you are. Verified TEE routes can add stronger content confidentiality where available.
What stays local
The VPR's configuration, signing identity, connected-app setup, routing decisions, and local activity data remain on your device unless a specific feature sends data elsewhere. The desktop signing key is encrypted at rest through the operating system keychain.
Encrypted peer transport
Between AntSeed nodes, the preferred transport is a mutually authenticated encrypted TCP channel using wallet-signed ephemeral keys. WebRTC DataChannels are a fallback for peers that advertise WebRTC but cannot use direct encrypted TCP. WebRTC is not the primary transport for normal node-to-node VPR traffic.
See the Transport specification for handshake, encryption, framing, and fallback details. For background on the fallback technology, see WebRTC data channels on MDN.
TEE-verified sellers
Trusted Execution Environments can add hardware-backed confidentiality when a seller offers a verifiable TEE route. Treat a TEE label as a claim to verify, not as sufficient proof by itself. Verification must bind the attestation to the running workload, seller identity, and expected configuration.
See Verify a seller's TEE, Security, and Intel's Trust Domain Extensions overview.
Credits and payments
AntSeed is pay per use. Add credits once, then the VPR authorizes bounded payment channels with the sellers serving your requests. There is no AntSeed subscription required for usage routed through the network.
Add credits
Open Credits and choose Add credits. The available funding methods can include card checkout or USDC transfers, depending on your location and the currently enabled providers.
Credits are USDC on Base held by the AntseedDeposits contract for your VPR signing identity. Circle publishes the official USDC contract addresses; always verify the network and destination shown by the VPR before transferring funds.
Payment channels and reserved funds
When a paid session starts, the VPR signs a capped authorization for one seller. Part of your available balance becomes reserved for that channel. Each request advances a cumulative spending authorization; the seller can settle only up to the latest amount you signed.
Reserved balance is still yours. Any unspent amount returns to available balance when the channel settles or closes. If a seller disappears, the channel can enter an on-chain close process and release the remaining funds after the grace period.
Open Activity to view active channels, spending history, settlement state, and close actions. See Payments for the full buyer flow and Base contract addresses.
Withdraw unused credits
Open Credits and choose Withdraw unused credits. Only available balance can be withdrawn immediately. Amounts reserved by active channels must be released through settlement or channel closure first.
Signing identity and funding wallet
The VPR signing identity authorizes protocol messages and bounded channel spending. It does not need to hold funds in a normal wallet. A separate funding wallet can deposit USDC for that identity without giving the VPR control of the funding wallet.
See Security: signing identity vs funding wallet for the security boundaries.
Rewards
The Rewards screen shows ANTS attributed to eligible network usage on the selected chain. Availability, transferability, and claim behavior depend on the deployed emissions contracts and current network phase.
If claims are available, the VPR opens a secure browser flow for the authorized wallet signature. A displayed pending amount is not a promise of token value, future emissions, or permanent eligibility. See Payments: ANTS token emissions and the ANTS token overview.
Use the local API
While the router is running, the VPR exposes a local API at http://localhost:8377. OpenAI-compatible clients commonly use http://localhost:8377/v1 as their base URL, while Anthropic clients use the root URL and append /v1/messages themselves.
The proxy binds to your computer rather than exposing the API to your local network. AntSeed does not require an API key for this local endpoint, although some clients require any non-empty placeholder such as antseed in their API-key field.
Browse models with /v1/models
Request the model catalog before choosing a model id:
curl http://localhost:8377/v1/models
GET /v1/models is answered locally and is not billed. Its data array contains the model ids currently advertised across the network. Use one of those ids in the model field of a request. To list image services only:
curl 'http://localhost:8377/v1/models?type=images'
Supported request endpoints
| Endpoint | Use |
|---|---|
/v1/chat/completions | OpenAI Chat Completions clients |
/v1/responses | OpenAI Responses clients such as Codex |
/v1/messages | Anthropic Messages clients such as Claude Code |
/v1/images/generations | OpenAI-compatible image generation |
/v1/images/edits | OpenAI-compatible multipart image editing |
/v1/messages/count_tokens | Local Anthropic token counting; never routed or billed |
For example, send an OpenAI-compatible chat request using a model id returned by /v1/models:
curl http://localhost:8377/v1/chat/completions \
-H 'content-type: application/json' \
-d '{
"model": "deepseek-v4-flash",
"messages": [{"role": "user", "content": "Hello"}]
}'
Select a model or seller through the API
The request's model field controls routing:
"model": "antseed"follows the model or seller route currently selected in the VPR. Changing the VPR picker updates clients that use this alias without rewriting their configuration."model": "<modelId>"uses automatic seller selection for that catalog model under your VPR Price + Trust preferences."model": "<peerId>@<modelId>"hard-pins that request to one seller and disables automatic failover.
If no VPR route is selected, the antseed alias returns no_default_route. Use a concrete model id when you want a request to route independently of the VPR picker.
See Using the API for SDK configuration, format translation, response headers, routing overrides, errors, and tool-specific examples.
Troubleshooting
No peers or models are listed
- Confirm the Home power button is on and the status area is healthy.
- Wait a few seconds for peer discovery.
- Open Models and use Refresh models.
- Check whether local security software is blocking the VPR's outbound or inbound network connections.
- Open Help → Developer mode → Available peers to inspect discovery directly.
AntSeed prefers encrypted TCP for node-to-node traffic and can fall back to WebRTC for compatible peers. Do not troubleshoot the VPR as if WebRTC were its only transport.
A connected app does not send requests
- Disconnect and reconnect the app from Connected apps.
- Restart the app if its row requests a restart.
- Check that the app is not overriding the base URL or API settings written by the VPR.
- Confirm the selected model is compatible with the app's API format.
- Use the integration-specific guide from the Integrations directory.
An app reports a certificate or SSL error
Open Connected apps, expand HTTPS certificate, and trust the current certificate. If an older AntSeed certificate is still installed, trusting the current certificate replaces it. Restart the affected app afterward.
Requests fail with payment errors
Open Credits and compare available balance with reserved balance. A new paid channel cannot open if there is not enough available balance for its capped authorization.
If a channel budget is exhausted during a session, the VPR normally settles it and opens another channel automatically. Retry a request once before changing configuration. Use Activity to inspect channels that remain open or are waiting for an on-chain close.
“Model is not served by this peer”
The app sent a model that the selected seller does not currently advertise. Re-select the model in the VPR to synchronize the route. If the error persists, disconnect and reconnect the app so its configuration and model state are refreshed.
If the route is pinned, confirm that the pinned seller still offers that exact model. Remove the pin to allow automatic selection to choose another eligible seller.
Responses are slow or time out
Seller performance and network paths vary. Open the model's seller list and try another eligible seller, or remove a hard seller pin so automatic routing can fail over after retryable failures.
Large prompts and attachments take longer to upload. The floating window activity pulse and Activity view help distinguish active transfer from a stalled request.
Reserved credits remain unavailable
Open Activity and inspect the active channel. Request a cooperative close when the seller is reachable. If it is not, request an on-chain close and follow the displayed grace-period instructions before withdrawing the released balance.
Collect diagnostics
Open Help, enable Developer mode, then use:
- Live logs for runtime events
- Available peers for discovered sellers and services
- Connection details for local router status
- Configuration for the effective runtime settings
- Copy diagnostic report for a versioned summary and recent logs
Review the report for secrets before posting it publicly.
Get support
For usage questions, join the AntSeed Telegram community. For reproducible bugs, open a GitHub issue with the VPR version, operating system, affected app, expected result, actual result, and a redacted diagnostic report.
Follow AntSeed on X for release announcements, and review the project changelog before reporting an issue that may already be fixed.