Skip to content
varsafe
Esc
navigateopen⌘Jpreview
On this page

Changelog

All notable changes to varsafe.

[7.2.7] - 2026-09-04

Changed

  • CLI: upgrade NestJS to 12 and validate requests with the built-in Standard Schema pipe

Fixed

  • CLI: stop caching node_modules, so a bad install layout cannot latch

Platform — 2026-09-04

Changed

  • MCP: a client that registers a http://localhost callback must now send "application_type": "native" in its registration request. Loopback callbacks are only accepted for native clients; a client that omits the field is refused at registration.

Platform — 2026-08-22

Added

  • API: the programmatic API surface is now published as an OpenAPI specification at https://varsafe.dev/openapi.json, with the scope each route requires. Point a client generator or an AI agent at it instead of hand-writing requests.
  • Docs: https://varsafe.dev/llms.txt describes what varsafe is for and when to reach for it, so agents can decide whether it fits a task without reading the marketing site.

Changed

  • Docs: a missing page on varsafe.dev now answers with links to the sitemap, the API specification and the documentation, in Markdown for clients that ask for it, instead of a bare “file not found”.

[7.2.6] - 2026-08-19

Changed

  • CLI: close the last three convention decisions

[7.2.5] - 2026-08-15

Fixed

  • CLI: tolerate EPIPE on stdout data pipes

[7.2.4] - 2026-08-15

Changed

  • CLI: finish the ruled convention remediation (wave 2)
  • CLI: typed errors everywhere, strict scoped writes, canonical transaction scope

Fixed

  • CLI: honor the disclosure policy in MCP tool errors and repair dead assertions

[7.2.3] - 2026-08-12

Fixed

  • CLI: keep snippet scratch out of the git checkout

Platform — 2026-08-12

Fixed

  • API: Emails that a provider rejects are now retried instead of being recorded as delivered. Some invitations, verification links and password resets could previously be dropped without notice.

Security

  • API: SSO configuration is now restricted to team owners and admins on the Team plan, where other signed-in accounts could previously create a provider. Existing SSO settings are unchanged.
  • API: Names shown in emails, such as a team or inviter name, are now escaped. A crafted name could previously alter the appearance of an invitation.
  • API: Repointing an SSO provider at a different identity provider now issues a new provider ID, so existing linked accounts cannot be inherited by the new one.

[7.2.2] - 2026-08-10

Fixed

  • CLI: pass the session bus through to spawned snippets

[7.2.1] - 2026-08-10

Changed

  • CLI: import the canonical secret-key pattern instead of redeclaring it

Platform — 2026-08-10

Added

  • API: Ending a session is now recorded, whichever way it happens — you revoking one of your own devices, an admin revoking a member’s, or an incident response — each with the reason it ended and what the person who did it had proved.
  • API: Changes to the account allowlist are now recorded, so who was granted or denied the ability to create an account is answerable from the audit log.
  • MCP: Connect an AI agent with an API token instead of the browser sign-in — for machines with no browser of their own, or when your agent should use a different account than your CLI. Grant a token MCP scopes on the API Tokens page, then pass it as an Authorization header.

Fixed

  • API: An access review is returned even if its audit entry cannot be written, instead of failing the whole request.

Security

  • MCP: A connected agent is now held to its owner’s current role, so lowering someone’s role takes effect on their agent immediately — previously only removal and deactivation did. An agent that starts refusing a tool needs the role that permits it restored.

Platform — 2026-08-09

Added

  • API: Your own account activity — sign-ins, sign-outs, passkey and two-factor changes — is now readable at GET /audit/actor/:actorId. These records were always written but no view could return them.
  • API: Generating a compliance export or an access review is now itself recorded in the team’s audit log, with who asked and which period it covered.

Fixed

  • Dashboard: The Audit Log page now opens for people who belong to no team, instead of failing with a validation error.
  • API: Account creation is recorded as its own event rather than as a sign-in, so signing up and signing in are no longer indistinguishable in the audit log.
  • API: Operator-only platform records no longer appear in a platform administrator’s personal activity, and personal activity now respects your plan’s retention window.

Platform — 2026-08-08

Added

  • Composed secrets — build a secret from other secrets: switch the value field to Composed and type ${ to pick a key. The dashboard shows what each secret is built from and what depends on it, and asks what to do before a delete or rename would break something.

Changed

  • Plan limits on team members and projects are now enforced on every path that creates one.

Fixed

  • Dashboard: two dialogs that could get stuck now recover — the Secrets page no longer sits on “Select team”, and the Add Passkey dialog no longer stays on “Registering…” after you dismiss the browser prompt.

Security

  • Every credential event is audited — issued, approved, refused, expired and automatically revoked — in each team the credential can reach.
  • Identity-provider URLs are validated when you save your SSO settings, and must be https.
  • API hardening — rate limits are counted across the whole service, secret responses are never cached, the client address can no longer be chosen by the caller, and the dashboard ships a Content-Security-Policy.
  • AI-agent tools validate every argument the way the API always has, and export patterns can no longer be made expensive to evaluate.

[7.2.0] - 2026-08-05

Added

  • CLI: read, write and delete composed secrets.

Fixed

  • CLI: varsafe set --stdin works when its input is a redirected file.

[7.1.3] - 2026-07-31

Fixed

  • CLI: varsafe status tells an inaccessible project apart from a connection problem, and re-checks which team you are in rather than trusting a stale local copy.

Platform — 2026-07-31

Fixed

  • The one-line installer works againcurl -fsSL https://varsafe.dev/install.sh | bash exited without installing anything. It now also checks it can write to the destination before downloading, and never hangs a CI runner.
  • AI agents: revoking a connection takes effect immediately, and membership or role changes retire the connections they affect.

[7.1.2] - 2026-07-30

Fixed

  • CLI: varsafe update offers a sudo-free reinstall to ~/.varsafe/bin when it cannot write to the install it is running from.

[7.1.1] - 2026-07-30

Fixed

  • CLI: varsafe update says it cannot write to its install before downloading, and gives the exact command to run.

[7.1.0] - 2026-07-28

Added

  • CLI: refreshed look and layout.

Fixed

  • CLI: varsafe get -n suppresses the trailing newline.

[7.0.0] - 2026-07-28

Breaking: varsafe run and varsafe run --env-file both changed behaviour, and the API now rejects unrecognised request fields. Read the migration notes below before upgrading.

Added

  • CLI: Linux ARM64 support, light and dark themes (varsafe theme), and varsafe status — one screen with the credential, project and environment you are working against.
  • CLI: varsafe list --include filters by glob, and varsafe run --shell runs a command that genuinely needs a shell.
  • Dashboard & API: read-only API tokens, ideal for CI jobs and audits. An existing token can be narrowed to read-only at any time, effective immediately.

Changed

  • CLI: Breakingvarsafe run runs your command directly, and --env-file reads encrypted files only. Migration: write the arguments out or use --shell, and source plaintext .env files inside the child process.
  • API: Breaking — an unrecognised field in a request body is rejected instead of being dropped while the request still returns success. Migration: the response names the field.

Removed

  • CLI: shell completion. Migration: remove any eval "$(varsafe completion zsh)" from your shell config.

Security

  • CLI: encrypted .env values are tied to the variable they belong to, so a value moved onto another variable no longer decrypts. Re-export any .env written before this release.
  • API: key rotation now covers leaving and demotion, not just removal by an admin.

[2.0.0 – 6.1.0] - 2026-07-27

Thirty-six releases over nine days, during which varsafe gained AI-agent access, encrypted exports and multi-team workspaces. Rather than list every patch from that window, the changes that affect you are collected here. Individual releases before 2.0.0 continue below.

Added

  • AI-agent access — agents manage secrets through a standard OAuth 2.1 flow, with scoped consent and full audit coverage. Works with Claude Code, Cursor and any MCP-capable client.
  • Encrypted .env exportsvarsafe export encrypts by default, so an exported file is safe to commit. CI can write one; reading one back stays restricted to an owner or admin.
  • Multi-team support — belong to several teams and switch between them from the dashboard and the CLI. The active team is remembered per project.
  • More ways to set a secretvarsafe set reads from stdin, a masked prompt, an environment variable or a file, so a value never appears in your shell history. varsafe get prints one.

Changed

  • Breakingvarsafe set no longer takes the value as an argument, which was visible in your shell history. Migration: printf %s "$VALUE" | varsafe set API_KEY --stdin.

Fixed

  • varsafe export writes faithful files — values containing shell characters or Windows line endings came back mangled, and multi-line secrets were silently flattened. Re-export anything written before this release.

Security

  • Sign-in and local storage hardened — OAuth 2.1 with PKCE, logout revoked server-side, the local encryption key in the OS keychain, and publisher-signed release manifests.
  • Tenant isolation is enforced at the storage layer, so teams cannot reach each other’s data even if an application check were bypassed.

[1.0.56] - 2026-03-05

Added

  • varsafe run --include '<patterns>' — inject only the secrets matching a glob.
  • varsafe login takes an API token from a masked prompt, from stdin, or from VARSAFE_TOKEN.

Fixed

  • API tokens authenticate CLI and API requests end to end.

[1.0.52] - 2026-02-14

Added

  • varsafe set and varsafe unset — create, update and remove a secret from the command line.
  • Checksum verification on CLI install and update.

[1.0.0] - 2026-01-21

Added

  • Initial release — a CLI-first secrets manager for developers and teams: login, use, ls, export, and run <command> to inject secrets into any process.
  • Dashboard for projects, environments, secrets, teams and API tokens.
  • One-line install: curl -fsSL https://varsafe.dev/install.sh | sh.