Get in, get on with it.
Sign in once. limen ls shows what you can reach. Keep using ssh, psql and kubectl, with no passwords or keys to look after. When you need more, ask for it, with a reason.
Limen replaces SSH keys, shared database passwords and CI secrets with a sign-in through your identity provider. Engineers and CI jobs get short-lived, audited access to SSH, databases, Kubernetes and internal apps, and every session leaves a trail you can verify yourself.
Every command below writes an audit event, and each event's hash includes the one before it. Edit anything in the past and the chain stops verifying. Press the tamper button and see.
A replayed terminal session. The audit events it produces appear in the list beside it.
A simplified picture of the idea. The real trail is batched, signed, and chained per writer in S3, and limen-audit-verify walks it.
Through the identity provider you already run. Your login is tied to a key that never leaves your machine.
limen loginYour IdP groups become roles, and roles reach resources by label. Anything no rule allows is denied, and you can ask why.
limen explain orders-prodYou get a certificate that lasts an hour, or less if you choose. A worker inside your network dials out to Limen, so your targets open no inbound port.
limen db connect orders-stagingEvery session is recorded or audited into a signed, hash-chained trail. Anyone who can read the bucket can check it.
limen-audit-verify --bucket …Sign in once. limen ls shows what you can reach. Keep using ssh, psql and kubectl, with no passwords or keys to look after. When you need more, ask for it, with a reason.
Policy in Git, tested in CI. Workers dial out, so you open no inbound holes. Run several copies of each part behind a load balancer. Prometheus metrics, OpenTelemetry traces and ready-made alerts.
Running at scale →A signed, hash-chained trail. Recordings that are checked before playback. Access reviews with signed evidence packs. A threat model and pen-test plan you can read before you trust it.
The threat model →Knowing who connected is the start. Limen is built so that every grant, every decision and every session can be checked by someone who doesn't have to trust Limen.
The audit trail is signed and hash-chained. Each control plane's S3 batches name the previous batch's hash, so a missing, reordered or altered batch is found by one command.
# walks every writer's chain $ limen-audit-verify --bucket audit --ca-file internal-ca.pem ✔ chain intactVerifying the chain →
Policy is YAML in Git, with tests that run in CI. Ask who can reach what, diff effective access, and get the reason for a denial.
kind: policy_test - name: devs cannot ssh to prod as root resource: orders-prod expect: denyPolicy tooling →
Access you ask for, with a reason. The approver sees what you did on that resource in the past 30 days. When the grant expires, so do the sessions it allowed.
$ limen request orders-prod --for 30m \
--reason "INC-123: orders is locked" --waitRequests and break-glass →A GitHub Actions or GitLab CI job signs in with its own token and gets a scoped, short-lived bot login. The run is named in every audit event. No secret lives in the repository.
$ limen login --bot github_actions $ limen ssh web-staging-1 -- ./deploy.shBots →
Everything on this page is in the Apache-2.0 build. Static binaries, PostgreSQL as the only required store, workers that dial out. No paid tier for approvals, auditing or discovery.
Each tile says where it stands. built means it works and is tested against a local copy of the software. unverified marks a cloud-specific path that is written but has not yet run against the real service.
Limen is tested thoroughly against local stand-ins. It has not yet been verified against real AWS, Okta or Datadog. Those checks are on the roadmap, one issue per service, and every page that describes a capability says whether it has met the real thing.
$ git clone https://github.com/limen-dev/limen && cd limen $ deploy/compose/setup.sh $ scripts/install-cli.sh $ limen --proxy localhost:3443 login --ca-file deploy/compose/.state/internal-ca.pem $ limen ssh web-staging-1
Needs Docker and the tools in mise.toml. The first build takes several minutes. This is a local stack with test users and passwords, not for production.