Skip to content
xecret
Sign in

Frequently asked

The questions you ask before you trust a secrets manager.

44 answers about how xecret works, what it costs, what it can see and what happens when you leave — including the several where the honest answer is no.

Getting started

What xecret is, and what it replaces

xecret replaces the .env file rather than sitting beside it. The five-step quickstart is the fastest way to see it work, and the features tour covers what is in the product if you would rather look before you make an account.

What is xecret?

xecret is open-source secret management for developers. You store your environment variables once, encrypted per environment, and the CLI injects them into whatever you run — locally, in CI, in production. It replaces the .env file rather than sitting beside it.

How is this different from a .env file?

A .env file is a copy, and copies are the thing you stop being able to track: who has one, whether it is current, and what was on the laptop that went missing. xecret stores the value once and injects it when your process starts, so rotating a key reaches everybody on their next run. You also get an audit trail, which a file on a laptop can never give you.

How long does it take to set up?

About five minutes for the first project. Sign up, drag in the .env file you already have, install the CLI, and put xecret run in front of your dev command — that is the whole of it. The quickstart in the documentation is five steps long.

Do I have to change my code?

No. xecret run puts the values into your process's environment, and your code carries on reading process.env, os.Getenv or whatever your language calls it. There is no SDK to install and no import to add.

Which languages and frameworks does it work with?

All of them. Secrets arrive as environment variables, so anything that can read its own environment works with no integration at all. There are written guides for Next.js, Node, React and Vite, Go, Docker and CI, but those are shortcuts rather than requirements.

Does it work with Docker and CI?

Yes. In Docker the CLI is a small binary you add to the image, or you start the container under xecret run from outside it. In CI you mint a service token pinned to one project and one environment, set XECRET_TOKEN on the runner, and the same commands work unchanged.

Does it work on Windows?

Yes — a native binary, with credentials held in Windows Credential Manager. PowerShell, cmd.exe and WSL are all supported.

Security and trust

What xecret can see, and what it cannot

The full reasoning — the key hierarchy, what each kind of compromise actually yields, and the cases where you should pick a different product — is in the trust model. Read it before you store a real credential, not after.

Can xecret read my secrets?

Yes, technically, and you should know that before you migrate rather than after. xecret uses server-side envelope encryption: every environment has its own data key, itself encrypted under a root key we hold, and values are decrypted inside a single request handler. Every one of those decryptions is written to an append-only audit log. This is the same model Doppler uses, and it is what makes team sharing, CI tokens and browser-side .env import work without a key-exchange ceremony.

Is xecret zero-knowledge or end-to-end encrypted?

No, and we do not use those words about xecret because they would not be true. If you need a provider that cannot read your secrets even in principle — because a regulator requires it, or because your threat model includes the provider being compelled — you need a zero-knowledge product, and you should choose one now. The trust model page makes the same argument at greater length.

What happens if your database is breached?

The attacker gets ciphertext. No key material at any layer is stored in the database: the root key lives in a Cloudflare Secrets Store binding the database has no access to. Each ciphertext is also bound to its exact position in the key hierarchy, so a secret row copied from staging to production simply does not decrypt.

What happens if your root key leaks?

The root key together with a database dump exposes everything, and that is the one scenario this model does not defend against. It is why the two are kept in different systems with no path between them. If you self-host, custody of that key becomes yours — generate it, split it, and escrow the shares before the first real credential goes in.

How are encryption keys rotated?

Every layer of the hierarchy — root, organisation, environment — is versioned, so any one of them can be rotated independently of the others. A key rotation is itself an audited event. Rotating an individual secret is just a write: the new version becomes current and the history stays readable.

Is there an audit log?

Yes, and every decryption is in it, including your own. Every mutation and every denial is recorded too, because a system that logs only what succeeded cannot show you an attack in progress. The table is append-only by database grant rather than by convention — the application credentials cannot alter it.

Could one of my secret values end up in a log line?

No, and that is enforced by the type system rather than by review. The type describing audit metadata is a fixed allowlist of field names with no catch-all, so code that tries to put a value into a record does not compile. Error messages are fixed strings for the same reason: nothing derived from an exception or from rejected input reaches a client, because the rejected input may itself be a secret.

Are my secrets ever written to my disk?

Only when you ask for it. xecret run never writes them — it hands them to your process and nothing else. xecret pull does write a file, by design, and warns on stderr every time. The CLI offline cache keeps an encrypted copy whose key lives in your operating system's keychain, not beside the file.

Do you have SOC 2 or ISO 27001?

No. xecret is pre-alpha and holds no compliance certification of any kind, and inventing one on a secrets product would be the worst thing we could ship. What exists instead is public: the source, the threat model, the licence and the self-hosting instructions.

Is xecret production-ready?

Not yet. It is feature-complete for its first version, but it has not run against production infrastructure and has not had an external security review. Do not put credentials you cannot afford to rotate into it today.

How do I report a vulnerability?

Privately — open a security advisory on the GitHub repository, or email security@playxoft.com. Please do not open a public issue. You get an acknowledgement within 48 hours and an initial assessment within five working days, and we credit you in the advisory unless you would rather we did not.

Plans and billing

Pricing, seats and what free actually means

The numbers below are the ones on the pricing page, and they are what the plans will cost at 1.0. Nothing is charged while xecret is in pre-alpha.

What does xecret cost?

Free is $0 forever: 1 organisation, 5 projects, 3 members, 3 environments per project, 7 days of audit history, the CLI and CI tokens, and community support on GitHub. Pro is $5 per member per month billed yearly, or $8 month to month, and adds 3 organisations, 25 projects, 10 environments per project, unlimited members, 30 days of audit history and email support. Team is $12 per member per month billed yearly, or $19 month to month, for 10 organisations, 100 projects, 25 environments per project, 180 days of audit history, roles and per-environment access, and priority support. Enterprise is custom and drops the ceilings, with a year of audit history, invoiced billing, a self-hosting support contract and an SLA; SAML single sign-on is a $199 per connection per month add-on from Team, and is included with Enterprise; directory sync (SCIM) is included with Enterprise and not sold below it. Neither is built yet. Self-hosting is free, always.

Do I need a card to try it?

No. While xecret is in pre-alpha no card is collected at all. Every organisation starts on Free, and each plan’s limits — Free’s included — apply now, as the pricing page states them. The prices are published now too, so that nobody is surprised at 1.0.

Is the free tier really free?

Yes — $0 forever, not a trial that expires into a quote. It is capped at one organisation, five projects, three members, three environments per project and seven days of audit history, and those are honest limits rather than a nag screen. Everything else on it behaves exactly as it does on the paid plans.

What counts as a member?

A person with a membership in your organisation. Service tokens are not people and never take a seat, so a CI pipeline costs nothing however many jobs it runs. The seat count is checked when an invitation is accepted, inside the same transaction that creates the membership.

How long is audit history kept?

Seven days on Free, thirty on Pro, a hundred and eighty on Team, and a year on Enterprise — or whatever an Enterprise agreement specifies above that, which can also export the log. Retention decides how far back you can read, not whether an event was recorded: every event is written on every plan, including Free.

Is self-hosting limited compared to the hosted version?

No. You get the whole server under AGPL-3.0, with no licence key, no feature flag and no seat count. What an Enterprise contract buys is support and paperwork, not capability.

What happens to my data if I downgrade or stop paying?

Your secrets stay yours and stay readable, and you can export all of them at any time from the CLI or the dashboard. A secret manager you cannot get your configuration out of has taken it hostage, which is not a retention strategy we are interested in.

The CLI

Running your app through xecret

Once you are actually using it, the documentation FAQ covers the day-to-day questions in more detail, and the offline cache page states the fallback rule exactly, including the cases where it deliberately does not apply.

What does xecret run actually do?

It works out which project and environment you are in, fetches that environment, and execs your command with the values already in its environment. Nothing is written to disk. Signals are forwarded, so Ctrl-C reaches your application rather than the wrapper.

Does it work offline — on a plane, for instance?

For xecret run, yes. The CLI keeps an encrypted copy of the last environment it fetched and falls back to it when the API cannot be reached, printing the age of that copy to stderr so day-old configuration never passes silently. The first run in a given environment needs a network, because that is what fills the cache.

What happens if the network drops in the middle of a deploy?

A DNS failure, a timeout or a 5xx falls back to the cache, loudly. A 401, 403 or 404 does not, because those are decisions rather than outages — and the most important of them is revocation, which has to take effect immediately rather than immediately-unless-the-laptop-is-offline. CI has no cache at all, deliberately.

How do I import the .env file I already have?

Drag it into the import dialog. It is parsed in your browser and a dry-run preview shows exactly what will be created, renamed or skipped, so a pasted blob of production credentials never becomes a request body. The CLI has the same importer with the same dry run, and dotenv, JSON, YAML and shell formats are all detected.

Can I get everything back out again?

Yes — xecret pull writes five different formats, and the dashboard has an export dialog. There is no export fee and no lock-in mechanism. Version history is the one thing a bulk export does not carry.

How does CI get secrets?

Through a service token. A service token is not a person: it is pinned to one project and one environment, it is read-only unless you deliberately make it otherwise, and it can never delete a secret at any access level. Put it in XECRET_TOKEN on the runner and your existing xecret run command works there too.

Can I run several environments at the same time?

Yes. Pass --environment on each command and every process gets its own set of values, with nothing shared between them. The dashboard marks production with a reserved colour, an uppercase label and hazard hatching, so which environment you are looking at survives both a small screen and colour blindness.

Teams and access

Members, roles and per-environment access

Roles, grants and the order they resolve in are written out in full in the teams and access guide, including why production is denied by default to the people who write the code that uses it.

How do I invite somebody?

From Members, with an email address and a role. The link is single-use, and accepting it requires being signed in as that same address, so a forwarded invitation cannot let a colleague join as somebody else. You cannot invite anybody at a role above your own.

What roles are there?

Four, ordered viewer, developer, admin, owner. The role is organisation-wide and decides what class of action is open to you at all: an admin manages members, tokens and projects; a developer reads and writes secrets where granted; a viewer only reads. Deleting the organisation is the owner alone.

Can I control access per environment?

Yes. Access levels — none, read, write, admin — are granted on a whole project or on a single environment, and the more specific grant wins. A grant can never exceed the role: an environment grant cannot turn a viewer into somebody who writes.

Can a developer see production by default?

No. Developers and viewers get none on production, and reaching it takes an explicit grant from somebody who manages members — a grant written to the audit log with a name attached. The alternative, production behaving like every other environment until somebody remembers to lock it down, makes the safe state the one that requires work.

How do I remove somebody who leaves?

Remove their membership. Their sessions and CLI tokens stop working straight away, and the offline cache does not soften that: the CLI treats a rejection as a decision and fails, rather than falling back to a cached copy on their laptop.

What can a departing employee still see?

Nothing new, and everything they already copied. Removing somebody revokes access; it cannot un-read a value they read last month. The audit log tells you exactly which secrets they decrypted and when, and that list is what you rotate — which is the whole reason every decryption is recorded.

Open source and self-hosting

The licence, running it yourself, and leaving

The server, the CLI and the threat model are all in the public repository, and self-hosting has a page of its own — including the dependency list we would rather you read before you start than discover halfway through.

Is xecret actually open source?

Yes, and you can read all of it before you sign up for anything. The server is AGPL-3.0 and the CLI is MIT. There is no open-core arrangement where the interesting half lives in a private repository.

Why is the server AGPL and the CLI MIT?

The AGPL means that if you modify the server and offer it to other people as a network service, you publish your changes. The CLI is MIT because it ships inside your Docker images and your CI runners, where a copyleft licence would be friction with no security benefit to anybody.

What do I need to run it myself?

Cloudflare Workers on a paid plan, a PostgreSQL database, a Cloudflare Secrets Store binding to hold the root key, and a WorkOS account for identity. The WorkOS requirement is real friction — it is a hosted service, so even a self-hosted install relies on an outside company to sign people in — and the documentation says so rather than burying it; an identity-provider interface exists so that a Postgres-native alternative can be contributed. Mail is optional — without it, invitations become a shareable link instead of an email.

Are any features held back from the self-hosted build?

None. It is the same server that runs the hosted product, with nothing gated behind a licence check. If a feature exists, it exists for you.

What happens to my data if Playxoft disappears?

You export it, or you run the server yourself, and neither path needs us to still be here. The source is published under a licence that cannot be withdrawn from the copies already released, and self-hosting is a documented path rather than a theoretical right.

Can I fork it?

Yes. That is what the licence is for. If your fork is a modified server you offer to other people over a network, the AGPL asks you to publish your changes; beyond that, go ahead.

Read the answers, then read the source.

Nothing on this page asks you to take our word for it. Create a project, import the .env file you already have, and check the audit log afterwards to see exactly what was read.

No credit card · AGPL-3.0 server · MIT CLI · Self-host it for free