Security: plugin trust
An external driver plugin (tobira-driver-<name>) is a program you run as yourself. tobira does
not sandbox it, so a plugin can read your files and use your network. Install only binaries you
trust, from a source you can check. This page lists what tobira does to limit the damage.
Quick start
sha256sum tobira-driver-example # macOS: shasum -a 256; compare with the author's checksum
tobira driver install ./tobira-driver-example --sha256 <64 hex characters>
tobira driver info example # starts it for the first time
plugins.enabled: false in the config file turns
plugin discovery off.
What tobira does
- Install requires
--sha256and keeps the binary only if it matches. It caps the download at 256 MiB, writes into a 0700 plugins directory, replaces an existing plugin only with--forceand never runs the binary. - Discovery accepts only
tobira-driver-<name>files with a safe name, in the plugins directory and onPATH(never a relative entry). A world-writable binary, or one in a world-writable directory that is not sticky, is refused. Before every start the file must still be the one discovery found.tobira doctorflags a plugins directory that is group- or world-writable. - Environment. A plugin gets only
PATH,HOME,TMPDIR,LANG,LC_*,TZandTOBIRA_PLUGIN_*(minus names ending in_PASSWORD,_TOKEN,_KEYor_SECRET). TheTOBIRA_CONN_*variables and your AI provider keys are never passed. - Secrets. A connection’s password reaches the plugin only when that connection opens, over a local gRPC connection secured with mutual TLS.
- Streams. stdin is
/dev/null, so a plugin cannot read your keystrokes or an MCP stream. stdout is reserved for the handshake, and stderr goes to the--debuglog, redacted and escaped. - Answers are checked against size and depth limits before use, and error text is redacted again by tobira.
What tobira cannot do
- A plugin’s read-only guard is its own promise, which tobira cannot verify.
- A checksum proves the file is the one you meant, not that it is safe.
- On Windows a plugin can outlive a tobira process that was killed.
See External plugin and the plugin host.