Security

How Gunnie.ai keeps your systems safe.

Gunnie.ai gives AI assistants access to the systems your business runs on. This page explains what that access looks like, what we store, and what we never touch.

A gate, not a copy

Gunnie.ai does not collect your data. When someone asks a question, it checks whether they may ask it, fetches the answer live from the system that owns the data, and passes it to their assistant. Products, tickets, designs and code are not stored on our side.

Access and permissions

People log in with their work account; single sign-on with Microsoft Entra ID comes with the beta. Their role (reader, ticket creator, designer, business analyst, product owner, developer or admin) decides which tools their assistant sees. Each connection has an allow-list of projects, repositories, files and designs; anything outside it is refused before it reaches your system.

Deny is the default. A refused call is logged with the rule that stopped it, so you can see what people tried as well as what they did. Tools that change something, such as creating a ticket, never run on the AI’s word: Gunnie.ai shows the person who asked exactly what will be written, and only writes it after they approve it in Gunnie.ai, logged in with their own account. That works the same for every AI assistant and for replies in Slack, and both the request and the approval are on record. Routines follow the same rule: a note, an estimate or a comment a routine wants to add waits as a proposal, word for word, until someone approves it. The scraper watch blocks addresses in Cloudflare, or makes a scraper’s company users inactive in the shop, only after an admin approves the block, and an admin can lift it again. An admin can decide every member’s proposals; the change then runs as the member who asked, within their role, and the record names who approved it.

Switch someone off in the control panel and their next call is refused. There always remains at least one active admin.

Files that hold secrets are never read

Configuration files with passwords and keys are off limits for every role: .env files, env.php and auth.json, private keys and certificates (.pem, .key, .p12 and similar), SSH keys, and credential files such as .netrc, .pgpass and .git-credentials. Gunnie.ai refuses to open them before your repository is even asked, leaves them out of code search and out of the changes it reviews, and logs every attempt as denied. Example copies such as .env.example stay readable.

When Gunnie.ai checks out code for a review or a build, such a file can be in that temporary checkout, but nothing that runs there is able to read it.

What we store, and what we never store

The call log, routine results and decided approvals are deleted after 30 days. Runs and their costs are kept with the invoices. Our privacy statement has a section on Gunnie.ai that says the same.

DataWhat happens to it
Who made a call, which tool, when, the outcome, how long it took and which assistant was usedStored for your call log, deleted after 30 days
Connection settings and allow-listsStored, visible to your admins
Connection tokensStored encrypted, never shown again
Who ran a code review or routine, when, the model used and the costStored for your budget, and kept with the invoices
The result of each routine runStored for your admins, deleted after 30 days
A change waiting for approval: what will be written, and to which ticketStored with its outcome as your approval history, deleted 30 days after it is decided or expires
The details of that change behind the summaryDeleted as soon as it is approved, rejected or expires
Questions, tool arguments and answers of callsNever stored
Products, tickets, designs and codeNever stored
Findings of a review someone starts from their assistantKept in memory for two hours, for the person who asked, then gone
Findings of a review a routine runsStored as that run’s result for your admins, deleted after 30 days

Encryption and secrets

Every connection uses TLS. Tokens for your systems are encrypted with AES-256-GCM before they reach the database, with a key that is kept outside it. Once saved, a token is never shown again, not to your admins and not in our tools; you can only replace it.

We ask for read-only tokens wherever a system offers them, and only for the projects and repositories you allow.

Organisations kept apart

Every organisation’s members, connections and call log live under row-level security in the database. Each query runs in the context of one organisation, so one customer’s data cannot show up for another, even through a bug in a single query.

Code review and builds

For a central code review, Gunnie.ai fetches only the branches it needs into a temporary checkout on its own server, reviews them read-only and deletes the checkout when it is done. A review never pushes to your repository, and posts on a pull request only where an admin has switched that on for a routine, each time after a person approves it.

Autonomous development can push one thing: a branch of its own, named gunnie/…, and only after you approve it and an admin has allowed pushes on the connection. It never touches master, main or another protected branch, never force-pushes, never merges and never opens a pull request.

Reviews and routines run on Claude through Gunnie’s own account, in the EU, never on a key of yours. Usage is counted per organisation and stays within a monthly budget you set; every routine also has a budget of its own, and a build has a limit per run.

AI models and training

Gunnie.ai does not train AI models, and nothing that passes through it is used to train one. The Claude API, which runs our code reviews, does not train on your data under Anthropic’s commercial terms.

Your AI assistant is your own choice and contract. Gunnie.ai only decides which tools it may use and what those tools can reach.

Hosting and providers

Gunnie.ai runs on a dedicated server in a European data centre, operated by Gunnie in the Netherlands. Its AI runs through EU regions. These providers handle a limited part of the service:

  • Hetzner (EU): the server Gunnie.ai runs on.
  • Stytch: login, and single sign-on from the beta.
  • Anthropic, directly or through Gunnie’s own Microsoft Azure, AWS or Google Cloud account: code reviews and routines.

What we do not have yet

Gunnie.ai is young. It has no SOC 2 or ISO 27001 certification yet. If your security or procurement team needs more than this page, ask us; we answer every question in writing.

Reporting a vulnerability

Found something? Email [email protected] with the details and how to reproduce it. We reply within a few hours and do not take action against research done in good faith. Our contact details are also in security.txt.

Questions from your security team?

Send them over. We answer in writing, in plain language.

Contact us