Connect your agent, and read what Vid shows
3. Connect your agent
Section titled “3. Connect your agent”Your agent has a setting for where it sends its calls, usually called the base URL. Point it at Vid instead of the model:
| Your agent talks to | Base URL |
|---|---|
| An OpenAI-compatible API: OpenAI, Ollama, llama.cpp server, Groq, Mistral, and most others | http://127.0.0.1:8787/v1 |
| Anthropic | http://127.0.0.1:8787/anthropic |
Then tell Vid where the calls really go. Out of the box, OpenAI-compatible calls go on to OpenAI and Anthropic calls to Anthropic. For anything else, such as an Ollama on your own computer, write the address in Vid’s settings file. vid paths shows where the file is; create it if it does not exist:
[upstream.openai]base_url = "http://127.0.0.1:11434/v1" # Ollama, for exampleKeys. With no key in Vid’s settings, the key your agent already sends is passed on unchanged. You can also give Vid the key (api_key in the same section, or the environment variables VID_OPENAI_API_KEY and VID_ANTHROPIC_API_KEY), and leave it out of the agent.
Check it. Make one ordinary call through your agent, then run vid status: messages_read has gone up. If your agent keeps working and the count moves, everything passes through Vid.
Every agent, every path. Vid sees only the calls that go through it. An agent with a second model setting, a fallback, or a tool that calls a model on its own needs each of those pointed at Vid too.
4. Read what Vid shows
Section titled “4. Read what Vid shows”vid status prints what Vid has seen since it started:
messages_read— every message Vid read: what the user typed, what tools returned, documents passed in.messages_with_hidden_content— how many of them hid something.by_code— which disguises, and how often. Each has a code such asPIT-E-07 · Base64orPIT-E-23 · Invisible Text. The codes come from the Arcanum Prompt Injection Taxonomy, so you can look any of them up.recent— the last sightings: when, through which API, where in the conversation the text came from (source: the user, a tool’s result, the system), which disguises, and the first part of what the text really said once undone.replies— the same for the model’s replies: how many were read, how many carried a secret, which kinds, and a masked sample of each.
How to read it.
- One sighting from a tool or a document is the case Vid is built for: text from outside that tried to hide. Read the sample. If it is an instruction (forward, delete, send, ignore your rules), find where that document or page came from.
- A sighting from the user is often harmless: people paste text from the web, with its invisible characters and odd spaces. Look at the sample before you worry.
- Many sightings with the same code from the same place is a pattern, not chance.
- A secret in a reply means the model had it within reach and said it. Change that secret, then find out how it got into the model’s context.
Vid keeps the last 200 sightings and replies in memory while it runs. The counts start again from zero when Vid restarts.