Claude Code, Codex and opencode now run inside the app
Claude Code, Codex and opencode now run natively inside SnoutData. Not a link out to a terminal, not a copied connection string: the agent starts in a panel in the app, in your workspace, with your databases already handed to it.
We shipped agent access over MCP a while back, and it solved the credential problem: an external agent could query your databases through the app instead of through a password in a .env file. But it left the agent somewhere else. You worked in one window and it worked in another, and everything it learned about your data it had to tell you in monospace.
So the agent moved in. Whichever of the three you already use, it now runs in a dock inside SnoutData, and it can operate the app rather than just talk about it.
It is your agent, not ours
This is worth being precise about, because plenty of products ship "an agent" and mean their own. We did not build one. You install Claude Code, Codex or opencode yourself, you pay for it yourself, and it runs on your machine under your account with your configuration. SnoutData gives it a place to sit and a set of tools.
An agent gets an icon in the activity bar when it is installed on this computer and you have not switched it off. Install none of them and nothing appears. Install all three and you get three icons, and they behave the same way.
Zero setup, because the app is already connected
The console hands the agent the app's own local broker when it starts. There is no config file to write, no connection string to paste, and no step where you go and find a password. If SnoutData can reach a database and you have allowed agent access to it, so can the agent, from its first message.
What it never gets is the credential itself. Your passwords, SSH keys and API keys stay in your operating system's keychain. The agent names a connection by its label and asks for work to be done; the app resolves the secret, runs the query on the pooled connection it already manages, and hands back rows. The agent receives a capability, not a secret.
To be exact about what that does and does not mean: this is a statement about what SnoutData hands over, not a claim that a program running as you is prevented from reading your own files. An agent you run acts with your access. Choose what it can reach accordingly, which is why agent access is opt-in per connection and off by default.
It drives the app
The app publishes what it can do as tools, and those tools run in the live interface. So the agent opens tabs, puts SQL in the editor, reads the current app state and the recent logs, changes settings, posts notifications, and builds a dashboard. You watch the window change while it works.
The difference this makes is easiest to see in a request like "make me a dashboard of the slowest queries". The old answer was a block of SQL and instructions for where to paste it. The new answer is the Dashboards view opening and the widgets appearing.
And it draws, instead of printing
A terminal can only give you text. But an agent working on your data has things to show you that deserve better: a result worth charting, a query worth running, an explanation worth reading as prose.
So the console has a render surface above the terminal. Anything the agent has no specific tool for, it can still show: markdown comes back as formatted prose, a fenced SQL block comes back as a card with Copy, Insert and Run buttons, a chart comes back as a chart. There is no message box up there, because the terminal underneath already is one.
You answer for everything it changes
Anything that changes the app is denied until you say yes, and the request is written for you rather than for a model. For an action you will allow over and over, you can grant it standing permission by name, from the approval itself or ahead of time in Settings. That matters more than it sounds: a queue of identical prompts is how people learn to click Allow without reading, and an approval nobody reads is not a control.
Everything it did is written down, in one place rather than four: an activity timeline in the Agent log, a notifications centre, an entry in the same AI audit trail the in-app assistant writes to, and an indicator in the status bar while it is acting.
If you would rather keep your agent where it already lives, the MCP path is still there and still works the same way. But if you want it in the app, with your data, able to build things you keep, it is a panel away.