Skip to main content

Security

The safest place for your work is the computer it is already on.

Convira is a desktop agent, so the strongest thing we can say about your data is not a policy but a shape: on a cloud run there is no table in our database for what you typed, what the model answered, or what the tools did. Not a rule against reading it. No column to read.

  • EU company · Convira OÜ · 17268095
  • EU-hosted · database and API
One cloud runOur database

Stripped before anything is written

  • Prompt
  • Response
  • Reasoning
  • File paths
  • Tool input and output

All that is left to store

  • Status
  • Timestamps
  • Model
  • Duration
  • Credits

Every run event crosses one boundary in our code that removes the content fields against a list before the write happens. The run itself lives on your device.

Evidence

Things you can check without taking our word for it.

A certificate is a way of letting somebody else do the checking. We do not hold one, so here is the material to do it yourself.

  • Every release artifact is signed with SigstoreSigning is keyless and the certificate names the workflow that produced the build, so the signature says which pipeline made these bytes rather than only that someone had a key. Each release carries its bundle.
    cosign verify-blob --bundle FILE.release.sigstore.json --certificate-identity-regexp '/desktop-release.yml@' --certificate-oidc-issuer https://token.actions.githubusercontent.com FILE
  • A bill of materials ships with every buildOne CycloneDX SBOM per platform, published as a release asset beside the installer, listing the npm graph and the Rust crates the cryptography is built from. Feed it to your own scanner.
  • Build provenance travels with the binaryEach platform publishes a signed statement binding the artifact to the commit and the workflow run that built it, and the release job refuses to publish if those signatures do not check out.
  • Installers are signed by the platform vendors tooApple notarization on macOS, Authenticode on Windows. The desktop updater checks the signature on an update before installing it, so a tampered update is refused.
  • The database on your machine is encryptedYour runs and sessions live in a local SQLCipher database whose key is held by the operating system's secure storage. A packaged build refuses to start if that protection is unavailable rather than falling back to plaintext.
  • Researchers have a documented way inAn RFC 9116 security.txt names a disclosure policy with response times and safe harbor for good-faith research. That page is reachable even while the rest of this site is gated.

Where your data lives

Three ways to run a task, and they differ in exactly this.

Which one you pick decides what leaves your machine. Nothing else on this page matters as much as this table.

  • LocalOn your hardware
    Runs on
    Your machine, against models you host
    Record
    Your machine, in the encrypted local database
    Reaches us
    Account and licensing traffic. A billed web, media or connector tool sends that tool's input when you invoke one.
  • Private BoxOn hardware you run
    Runs on
    A server you self-host and control
    Record
    Your device keeps the authoritative copy
    Reaches us
    Licensing traffic, plus the same billed-tool input if you invoke one. Devices that hold access to the box also report whether it answered them - a status word, once every two minutes and again whenever that answer changes - so your team's cards agree about it. The one-time pairing sends more, once: the box's address, its TLS fingerprints and its bearer credential. We keep the address and the fingerprints in plain form so a teammate's device pins the right machine, and the bearer only as ciphertext sealed to your device key. Never anything it ran.
  • CloudOn our infrastructure
    Runs on
    Our infrastructure, which forwards the request to the model provider
    Record
    Your device keeps the authoritative copy
    Reaches us
    Operational metadata only. The prompt and context are forwarded to generate the response and are not retained by us.

Containment

Code the agent runs is caged by the operating system.

Convira's own permission policy checks every tool call. This is the layer underneath it, in case the policy is the thing that is wrong.

  • macOSDeny by default
    • Seatbelt
    • sandbox-exec

    A generated profile with a deny-by-default posture, so a path the tool was not granted is a path it cannot open.

  • LinuxDeny by default
    • bubblewrap
    • namespaces
    • rlimits

    A namespace jail. The tool's filesystem root holds only the directories it was granted, so a path it was not given is not merely unreadable but absent. A tool running without network access gets a network namespace whose only device is loopback, so it cannot open a socket to anywhere.

  • WindowsDeny by default
    • AppContainer
    • Job Object

    A fresh AppContainer per launch with no capability SIDs, which denies outbound network and filesystem access by default rather than only restricting writes. A Job Object caps memory, processes and CPU.

We check most of this on your machine, and name the part we do not. The first time a tool needs a sandboxed process, Convira runs the resource controls on your real machine - a shell reports back the limits it inherited, a real process group is killed and the background child it forked has to die with it, and on Linux an allocation larger than the cap has to fail while a smaller one under a generous cap succeeds - and a control whose check does not pass is reported as absent for the rest of that session. Filesystem and network confinement are checked the same way on Windows, by launching a real confined process against them; on macOS and Linux those two are taken from the presence of the operating system's own sandbox rather than exercised. Where a tool needs isolation the host cannot give it, the tool is withheld rather than run without it: model-authored code is refused outright rather than run unconfined. The exception is a short list of helpers Convira invokes itself and the model cannot author - git, archive extraction, OCR - which keep a narrower compatibility path if the deny-by-default sandbox will not load on your machine.

Limits

What we do not claim.

This section is the reason to believe the rest. It is the part a vendor has no incentive to write, and it is written first.

  • No SOC 2 or ISO 27001 certificationNeither is held today. SOC 2 is the first planned engagement once deal flow justifies the cost, and we will name the firm and the window when it starts rather than describe a plan as a credential.
  • No outside review of the cryptographyNobody outside this company has checked it. Our own red-team suite is evidence for us, not a result to publish as somebody else's finding.
  • No single sign-on yetAccounts use a password plus an emailed code. There is no SAML or OIDC option for customer accounts today.
  • The Data Processing Agreement was drafted in-houseIt is published and it applies automatically, and it has not been through external counsel. It will be before the first enterprise signature, and the agreement says so in its own first section.
  • Delivery metadata existsOur servers see which workspace and channel a message went to, how big it was and when. That is how delivery works. We encrypt content; we do not claim the absence of metadata.
  • Local means inference-local, not airtightOn the local runtime a billed web, media or connector tool still sends that tool's input to us, because the keys for those services are ours and stay server-side. Everything around it stays on your machine.

Discipline

What stops this page from drifting.

Marketing copy decays faster than software. These are the checks that fail our build when it does.

  • A charter of sentences we may not writeA check scans every file on this site that mentions Team Hub and fails the build on an over-claim, in English and in the eleven translations, because four translators once turned a scoped claim into a universal one.
  • Deleting a disclosure fails the build tooThe same check pins the specific limits this page has to carry. A limits paragraph quietly dropped in a rewrite is a red build, not a silent improvement in the copy.
  • The encryption claim is exercised, not assertedA suite drives the real collaboration routes with real client-side sealing and a marker string inside every plaintext, then asserts the marker reaches no database column, no stored object and no live event frame.
Security | Convira