Security & governance

Human-in-the-loop by design, enforced where the action happens.

Topsoil does not rely on the model to behave. Approvals, allowlists and path checks are enforced in the client, at the point where a file is written or a command runs, and the work lands in infrastructure you operate.

Every control, what it stops, and where it is enforced

ControlWhat it stopsWhere it is enforced
Plan modeChanges before anyone has agreed on the approach. Plan mode reads and researches only; nothing changes until you approve the plan.Topsoil client
Diffs and permission promptsSilent edits. Every edit arrives as a diff, every command as its exact program and arguments. In the default mode Topsoil asks before each file change, command or use of the network.Topsoil client
Command allowlistArbitrary commands. Commands run only if they start with an allow-listed prefix, and run without a shell.Topsoil client
Network off by default for commandsQuiet egress. Outbound network access for a command is off unless the tool asks for it, and that asks separately.Topsoil client
Risk classes and path checksWrites outside the expected place. Tools carry a risk class of read, write or network, and file paths are checked before a tool touches them.Topsoil client
Optional filesystem sandboxReach beyond the project, when you turn it on.Topsoil client
Isolated git worktreeChanges to your working tree. A handed-over task is done on its own branch in its own worktree, and comes back as a pull request. Topsoil does not merge.Your git repository and forge
Tests that must fail firstTests that prove nothing. In /task, /goal and /loop, new tests are run with the rest of the change put back, and have to fail.Topsoil verify stage
IAMWho can call which model, and who can read which files.Your AWS account
BudgetsRunaway spend. Checked before every model call, with an AWS budget action as the backstop.Topsoil client and your AWS account

Data sovereignty: where your data lives

Topsoil runs in your own AWS account and the Region you choose, on Amazon Bedrock. Your code, prompts and outputs stay in infrastructure you control, and no Thazen service sits in the path.

DataWhere it lives
Source code and working filesOn the developer’s machine and in your own git repository and forge.
Prompts and attached contextSent only to the Bedrock, custom HTTPS or gateway endpoint you configure, in your account and Region.
Model outputsReturned to the machine that asked. Files land in your working folder; handed-over work comes back as a pull request in your repository.
Context library and budget policyYour own S3 bucket, in your configured Region by default, under per-user prefixes that IAM enforces.
Chats, sessions and credentialsOn the machine that runs them. Desktop credentials are held in the operating system’s keychain.
LogsRedacted before they are written. Bedrock invocation logs exist only if your account turns them on, and then in your account.
Shared projects and channelsWhen you turn them on, a DynamoDB table and Lambda function deployed in your own AWS account.

Region choice is yours, in commercial Regions or AWS GovCloud (US), and so is the model: a cross-Region inference profile can route a request to another Region in its geography, so pick model IDs that fit your residency rules. Optional connections, such as web search, MCP servers and Slack status messages, are off until you set them up and reach only the endpoints you configure. Read the data sovereignty guide.

Prompt injection: why enforcement sits at the execution layer

A coding agent reads untrusted text all day: issues, documentation, web pages, tool output. The OWASP Top 10 for LLM applications lists prompt injection first, and guidance from NVIDIA’s AI red team is to treat model output that drives tools as untrusted. That is the design assumption here. Because approvals, allowlists and path checks are enforced where the action happens rather than requested of the model, a manipulated model can propose an action, but it cannot carry it out without passing the same gates as any other. Read the checklist.

Secrets on the machine

  • The desktop app keeps credentials in the operating system’s keychain; local data uses SQLite.
  • Anything that can hold a key, token or session is redacted before it is written to a log.
  • Backlog tokens and MCP server credentials are named in settings and kept host-side with your other secrets, never written into project files.
  • MCP tools are enabled per project, so a project only sees the tools you turned on for it.

No vendor control plane

There is nothing between your people and your Bedrock endpoint that Thazen operates. A security review can start from the AWS account, the IAM policy and the network path it already knows, and finish there.

Which model does what

You choose from the models your account has enabled in Bedrock. Which model plans, implements, verifies and reviews is set per project, so the choice is visible and reviewable.

Questions

Frequently asked questions.

Can Topsoil run commands without asking?

Only commands that start with a prefix on your allowlist, and outbound network access for a command is off unless the tool asks and you approve. In the default mode Topsoil asks before each file change, command or use of the network.

Does Topsoil merge its own pull requests?

No. A handed-over task comes back as a pull request for a person to review, and Topsoil does not merge it. Unattended runs open their pull request as a draft.

Does Topsoil send telemetry?

No. There is no Topsoil analytics, telemetry stream or crash reporter, and no font or CDN fetch.

Where is our data processed and stored?

In your own AWS account and the Region you choose, commercial or AWS GovCloud (US). Prompts go to the Amazon Bedrock endpoint you configure, the context library is in your S3 bucket, and chats and credentials stay on the machine.

See it against your own codebase.

A pilot runs in your own AWS account, with your models and your material, and ends with findings you can act on.