Signing you in

The custody promise

SEAL.
KEEP.
SHARE.

Your agent's memory — sealed on your machine, kept in storage you choose, shared on your terms.

Node 22+ · macOS, Linux, Windows · one CLI · npm install -g sealkeep

Preserve your agent memories

01 / 03
01 // Local E2EE

Sealed on-device

Encrypted before a byte leaves your machine. We don't have the keys. We never touch the plaintext.

Zero-knowledge architecture
02 // Sovereignty

Kept where you choose

Use your own bucket, personal Google Drive, or managed Sealkeep Cloud. Every destination receives only encrypted, verified archives.

User-controlled routing
03 // Collaboration

Shared on your terms

Bundles, recipients, and live bridges. Share across machines, models, and teams.

Cross-model memory
The context tax

Your last session cost
597,000 tokens a step

Ninety-seven percent of that was re-reading its own history. An AI coding session charges you for its whole transcript on every single request: ask a one-line question and you pay for all of it, run an agent loop and you pay for all of it once per command. Nothing tells you until the limit is gone at 2am, mid-deploy.

Sealkeep already holds your session files, so it can answer the question nothing else can. One command, local files only, no account needed.

● ● ●you@yours — sealkeep meter● LOCAL ONLY
$ sealkeep meter
Context cost, last 24h, across 36 sessions.
Read from local session files. Nothing left this machine.

tool   where              steps  per step  history  total in  signals
claude bot                  457      597k      97%    272.8M  BLOATED
claude sometest             368      474k      96%    174.3M  BLOATED STALE
codex  spala                581      162k      99%     94.2M  BLOATED STALE POLLING

Total sent: 807.8M. The same work from fresh sessions
carrying a 3k-token pack: about 36.5M.
That is roughly 771.4M spent re-reading, 95% of everything you sent.

Real output from one machine, one morning. The meter reads local session files. No recovery phrase, no key, no network, nothing uploaded to produce a number.

The way out

Resuming an old session is
the expensive mistake

Pick up a months-old conversation to ask two questions and the entire transcript goes with every request. One real evening, two questions on a resumed session cost 41 million tokens, of which about 220,000 were the actual work. The weekly allowance was gone by 2am, mid-deploy, and nothing had said a word.

Sealkeep gives you the other option: leave the session, keep what it knows. One command prices the choice, writes a small pack of where the work got to, and hands you the command to start fresh.

● ● ●you@yours — sealkeep fork● LOCAL ONLY
$ sealkeep fork
The most expensive session you have open is the claude one in bot.

  carrying on there      615k tokens per step, 97% of it re-read history
  starting fresh          22k tokens per step, carrying a 392-token pack instead
  you would save         593k tokens on every step from here on

The full session is sealed and searchable, so nothing is lost by leaving it.
01 // The pack

Small enough to carry

Where the work got to, what was being asked for, which files were open. A few hundred tokens instead of a few hundred thousand, written where your next session can read it.

Not the transcript
02 // The guarantee

The rest is one question away

The pack tells your agent, in words, that the full history is searchable and to ask for the one detail it needs rather than have it pasted in. That is what makes leaving safe instead of lossy.

Search, not paste
03 // The check

It refuses to lie to you

If the session is not sealed and indexed yet, Sealkeep says so and will not pretend walking away is safe. The promise only holds when the history can genuinely be recalled, so it verifies that first.

Checked, not assumed
What it watches

Three signals, each one true of a session
that ended somebody’s week

BLOATEDHistory is more than 90% of what you send, and more than 50,000 tokens a step. You are paying rent on a transcript.99.5% at 170k/step
STALEThe session is older than seven days or bigger than 200 MB. It gets more expensive every day you keep it, and the day it becomes ruinous looks exactly like the day before.3 months, 2.7 GB
POLLINGAn agent is sleeping and re-checking inside its own turn, paying the full context on every tick to learn nothing.48 sleeps, one turn

Each threshold is deliberately boring, and each one fired on a real machine the night two limits died two hours after they reset.

What changed

It never tells your session
the same thing twice

Sealkeep used to re-send the same preamble and the same list of preserved sessions after every prompt and every Bash, Edit and Write. Measured on one real session, 80% of everything it injected had already been given to that same conversation, and because a block added early is re-sent on every request that follows, the repetition cost 81.6 million tokens.

01 // Still there

Recall runs exactly as before

Every boundary, still searching against what you just typed. Nothing was taken away, and your agent still knows where you left off the moment you open a project.

Same recall
02 // Only what is new

It remembers what it already said

The framing is said once. A passage that arrived as a preserved session is not sent again as a search excerpt, because it is the same sentence in a different wrapper. Only genuinely new history reaches the prompt.

80% was repetition
03 // Not amnesia

Once per conversation, not once ever

The record is per session. A new conversation is a new reader and gets told where the work is up to. SEALKEEP_RECALL_PUSH=0 narrows it further, to session start only.

Per conversation
The obvious replies

Answered, not dodged

“Cached tokens are cheap.”Cheap is not free, and limits count them. 109 million discounted tokens still ended a week two hours after it reset.Counted
“I will just compact the session.”Compaction shrinks once and starts growing again. Forking resets the floor and keeps the history searchable instead of resident.Resets the floor
“Is my code leaving my machine?”No. The meter reads local files. Nothing is uploaded to produce a number, and you do not need an account to see one.Local only
“I would lose what the session knows.”That is what the pack is for: the rules, what is true now, the last handoff. Everything else is a search away rather than a line in every prompt.Kept, not carried

One command, reads local files only. It tells you which session to abandon and what that will save. The number is the pitch, and it belongs to you.

How it works

The order is the safety property

Nothing is reclaimed before it is verified. Nothing is verified before it is sealed.

● ● ●you@yours — sealkeep autopilot● RUNNING
$ sealkeep autopilot --reclaim
✓ vault created 7a126017…        ✓ recovery phrase shown — 24 words · once · not stored
✓ hooks installed — claude, codex   preserve + upload automatically · reclaim explicitly enabled

$ sealkeep autopilot status
sealed 412 · verified 412 · reclaimed 3.4 GB
last cycle 40s ago · next in 5m
1

Catch

Your agent's session hook records that a transcript exists and where it lives. Nothing is read yet.

holds no secret · no network call · milliseconds
2

Seal

A worker encrypts the session with a key made on this machine and wrapped twice — once for your phrase and once per trusted device.

revoking a laptop rewraps keys, not your data
3

Verify

The sealed archive goes to your chosen storage, and Sealkeep reads it back. Byte count and checksum must match what was computed locally.

no match → not durable → local file stays
4

Reclaim

Only a verified, searchable, unchanged and idle session becomes eligible. When you enable reclaim, eligible sessions can have their full local bytes removed. Supported top-level (non-subagent) Codex sessions keep a tiny same-ID resume pointer; unsupported and subagent Codex sessions keep their full local original.

off by default · verified remote copy required

Autopilot preserves, indexes, and uploads on a loop. Reclaim joins that loop only after you explicitly enable it, and Sealkeep notifies you when disk is reclaimed or something needs a decision — never for routine sealing, which would only train you to ignore it.

Setup
Two commands
Recovery phrase
24 words, shown once
Local originals removed
Opt-in · after verification
Transcript bytes we receive
Zero
What you get

Six months of reasoning,
still searchable

Find the session by what you said in it

Six weeks later you remember the bug, not the folder. The content index is sealed with the same machinery as your archives and synced beside them — so every machine of the vault searches your whole history, and your agents search it too, over MCP.

metadata instantly · full text on any machine holding your phrase
$ sealkeep search "stripe webhook" --content
08424eb6 …the stripe webhook was firing twice…12 Aug
a91c40f7 …switched the webhook to the idempotency key…4 Aug
3f7c02d1 …stripe webhook signing secret rotated…27 Jul
The failure we had to prevent

Archiving must never cost you a resume

For supported top-level (non-subagent) Codex rollouts, reclaim leaves a valid three-line transcript at the same native path and session ID. Unsupported and subagent Codex rollouts stay on disk. Resume from an eligible pointer starts immediately; Codex can search preserved memory through the local Sealkeep MCP, while full byte restoration stays an explicit choice.

codex resume 08424eb6✓ same session ID · lightweight pointer called sealkeep_search("where did we stop?") full bytes: sealkeep recover <archive-id> --native --overwrite backup

Actually frees local space

Reclaim is off by default. When enabled, Sealkeep removes an unchanged local original only after its complete encrypted archive is verified remotely and covered by search.

✓ verified 9f2c1ab4 in storage eligible top-level Codex source → same-ID pointer1.4 GB reclaimed

The remote archive stays encrypted, verified and explicitly restorable.

Your bucket sees noise

Every path segment — project, date, session — is an HMAC under a key derived from your phrase. No project names, no dates, no session ids.

Prefer legible paths in your own bucket? One config flag.

Watch a session live

Share an ongoing session on a channel; teammates follow it read-only. Every delta is sealed on your machine before it moves, and followers verify a hash chain before a byte lands in their mirror.

$ sealkeep bridge start s01.jsonl --channel review sharing on review · 2 deltas · live follow with: sealkeep bridge watch review
sealed deltas · hash-chained · read-only for followers

Restores on a machine that never saw it

Each archive carries its own envelope, so a restore needs your phrase and an account. Not the original laptop, not a config file, not an index you forgot to copy.

hash checked after download
checked again after decryption

Your agents know the vault is there

One command registers a local MCP server with Claude Code and Codex, so the agent itself can search your sealed history and restore a session it needs.

all local · nothing new exposed to the network
$ sealkeep mcp install ✓ registered with claude · codex search · restore · status · retention · upload · prepare
Zero knowledge, spelled out

What the control plane can and cannot see

It coordinates devices, quotas and upload permissions. Sealing happens before any of that, on your machine.

Lose your recovery kit and every device you registered, and your archives are unreadable. Support cannot get them back. That is not a gap in the product — it is the product.
It holdsIt never receives
Account and device identifiers
Transcript content — no endpoint accepts it
Byte counts and timestamps
Archive keys — generated and wrapped on your machine
Checksums of sealed archives
Your recovery phrase — shown once, stored nowhere
Encrypted manifests it cannot read
Device private keys — only public halves are registered
Your only key

Twenty-four words,
not a base64 string

Words survive bad handwriting, can be read aloud, and carry a checksum — so a misread word is caught and corrected rather than silently locking you out.

Shown once · stored nowhere · never sentsealkeep recovery kit
1acorn2oxide3lynx4atom5voyage6harbor7pine8delta9mango10flint11east12clock13iris14brass15stork16maple17ridge18ember19quilt20fable21onyx22cedar23dune24cricket

Type it back with sealkeep recovery verify to prove your copy works. Case and spacing do not matter; a wrong word is named with suggestions — Word 1 “acron” is not in the list. Did you mean acorn, arrow?

Pricing

Whose bucket

Not the same product with a different quota. On free, archives go to a bucket you own under your own credentials — we never hold them and cannot count them.

Your bucket
$0 forever · S3, R2, GCS, Drive, MinIO

Pick this if you have a cloud account and would rather hold your own data than trust anyone with it.

  • Every personal-vault capability — sealing, verify, search, retention, MCP, restore
  • Guided setup: console links, filled-in commands, a least-privilege policy
  • Credentials go to your OS keychain, never a config file
  • You paste each IAM step yourself
  • No escrow — your recovery kit is the only copy of the key
Our bucketManaged
$6 /month · 100 GB, up to 2 TB

Pick this if you bought “it just works” — and would rather not be the only backup of your own key.

  • No provider to name. Quotas and uploads are brokered for you.
  • A sealed copy of your key that survives losing the machine, openable only by your phrase
  • Storage meter, archive list and device revocation in the account panel
  • Your keys and your phrase still never leave your machine
100 GB · $6500 GB · $122 TB · $30
Pro Lite
$2 /month · your storage, our safety net

Pick this if you keep your own bucket or Google Drive — and want the parts of an account that save a bad day.

  • Sealed key escrow — a copy we cannot open, your phrase can
  • Machines signed in: enroll a new laptop with one code, revoke a stolen one from the panel
  • Drive or bucket stays yours — we still hold no bytes
TeamCowork
$9 /seat · project-scoped team access

Pick this if one project's memory belongs to several people — and to their agents.

  • Project-scoped members: a colleague opens what the team sealed, nothing else
  • Shared sessions require a managed project copy; managed storage is billed separately. Personal Drive and bucket routes stay private to their owner
  • Live session bridges, relayed through our plane — ciphertext in, ciphertext out
  • The round table: add and revoke members from the dashboard

Or skip storage entirely and keep everything local — Sealkeep still seals every archive, it just has nowhere to copy it.

Getting started

Four steps either way

The phrase step is the one that matters.

  1. Install

    npm install -g sealkeep
  2. Choose free, pick a provider

    Three questions: provider, bucket, prefix.

    sealkeep start
  3. Write down the phrase

    Twenty-four words, shown once, generated here and never sent anywhere.

  4. Create the bucket, then run it

    Sealkeep prints the console links, the commands, and a policy scoped to your prefix.

    sealkeep storage setup
    sealkeep autopilot
  1. Install

    npm install -g sealkeep
  2. Create an account

    Below, or in the terminal. Nothing else to set up.

    sealkeep start
  3. Write down the phrase

    Your keys are generated on your machine. We store a copy sealed with this phrase, which never reaches us.

  4. Let it run

    Your machine requests a signed URL and uploads directly. The bytes never pass through our servers.

    sealkeep autopilot
    sealkeep cloud status
Product & assurance roadmap

What ships now,
and what advances next

Production capabilities today, with dated milestones for the next assurance gates.

Capture and sealingDurable queue, crash-safe, deduplicating, resumable streamingShipping
RestoreByte-identical explicit restore; supported top-level (non-subagent) Codex sessions keep a same-ID pointer that searches memory over MCP, while unsupported and subagent sessions keep their full local originalShipping
RetentionOpt-in deletion of unchanged local originals, only after remote verification and search coverageShipping
SearchSealed content index, synced across your machines as ciphertextShipping
Agent integrationMCP server for Claude Code and Codex, session hooks, live bridgeShipping
Encryption formatPublished v2 format, deterministic vectors, and tamper suite; independent-review package in preparationAudit prep · Q3 ’26
Cloud providersR2 production-backed; GCS retirement and S3/Drive production hardening tracked in the Q3 2026 provider milestoneHardening · Q3 ’26
Signed releasesnpm provenance and signed manifests ship today; native OS signing is the next supply-chain milestoneRoadmap · Q3 ’26

Independent-review preparation is active. Encryption format v2 uses published authenticated-encryption primitives and ships with deterministic vectors plus byte-by-byte tamper coverage. The public assurance roadmap tracks external cryptographic review as the next gate; no completed third-party audit is claimed today.

Questions

The ones that actually matter

What happens if I lose the 24 words?
Your phrase is the permanent recovery path, and Google sign-in alone cannot decrypt anything. Paid accounts can also create five one-time backup codes; each can recover the sealed vault key once after every device is lost. Keep the printed Recovery Kit offline and verify it while this machine still works.
Can Sealkeep delete my sessions by accident?
Automatic reclaim is off by default. If you enable it, Sealkeep removes only the exact unchanged local bytes represented by a complete verified remote archive, after the configured idle and grace periods and after confirming that archive is searchable. Supported top-level (non-subagent) Codex sessions keep a same-ID pointer; unsupported and subagent Codex sessions keep their full local original. The full archive remains explicitly restorable. Deleting the remote archive is a separate account action.
Will archiving break --resume?
No. For supported top-level (non-subagent) Codex sessions, reclaim leaves a tiny valid transcript under the original session ID, so codex resume <session-id> still opens immediately and can call sealkeep_search for relevant memory. Unsupported and subagent Codex sessions keep their full local original. Full restoration is deliberately explicit—use the recovery command shown in that pointer—so startup never waits on a multi-gigabyte download.
Can you read my transcripts?
No. Sessions are sealed on your machine before anything moves. Storage holds ciphertext, the control plane holds identifiers, counts and checksums, and no endpoint accepts transcript content. We hold no key that opens an archive.
Do I need a cloud account?
No. The free plan writes to a bucket you already own — S3, R2, GCS, Drive, or anything S3-compatible. Or skip storage entirely and stay local: everything still gets sealed, it just has nowhere to copy.
Is the encryption audited?
Not independently, yet — and we say so on this page rather than in a footnote. It is authenticated encryption on published primitives (ChaCha20-Poly1305 or AES-256-GCM), with deterministic test vectors, a tamper suite, and a written threat model in the repository.

Two commands.
Then nothing.

Install it, write down twenty-four words, and stop choosing between your disk and your history.

No credit card for the free plan — it uses your own bucket

Your code is in Git. Your AI engineering history isn’t.

SealKeep preserves the work behind the code—decisions, commands, failed approaches, corrections, test results, and handoffs—in storage your company controls. You can run on-premises or in your cloud, with connected and fully isolated modes stated separately.

Request a continuity pilot →Request an architecture review

Email security@spala.ai with your team size and deployment preference.

The work Git cannot keep

Your code survives in Git. The work that produced it often doesn’t.

A developer spends three days with Claude Code:

  1. 01Debugging a production race condition
  2. 02Discovering two failed approaches
  3. 03Correcting the agent
  4. 04Learning an undocumented system constraint
  5. 05Arriving at the final fix
Git keepsThe final diff1 file changed
8 insertions · 3 deletions
The end state. Not the path.
SealKeep preservesThe work behind it
  • Decisions and reasoning
  • Commands and outputs
  • Failed approaches
  • Human corrections
  • Tests and results
  • Handoffs and transcript

SealKeep makes that engineering history a company-controlled project record.

GitWHAT changed

Final diffs, commits, branches, and tags.

Jira + LinearWHAT was requested

Intent, tickets, acceptance criteria, and status.

SlackWHAT people discussed

Useful fragments, scattered across conversations.

SealKeepHOW engineer + agent arrived

Decisions, commands, dead ends, corrections, tests, and handoffs.

01 // Key custodyKeys stay on customer endpoints

Recovery phrases and device private keys are not sent to the backend or to Spala.

02 // Data residencyYou select every data region

Application, PostgreSQL, object storage, logs, and backups stay where you place them.

03 // EntitlementOffline licensing is available

The isolated edition disables the network licence check or validates entitlement locally.

04 // AdministrationNo standing provider access

Support access is disabled by default and, if approved, can be time-bounded and logged.

Built for high-impact moments

Company memory for the moments that cost the most.

AI-assisted engineering work becomes durable company memory: searchable by authorised teammates and available as project-scoped context to their coding agents.

03 // Onboarding + handoffs

Continue where somebody else stopped.

Give a new hire, on-call engineer, or replacement contractor the preserved context needed to continue: what was attempted, what changed, which constraints mattered, and where the previous session stopped.

Preserved handoffs · content search · exact native restore
04 // Shared agent context

Codex can reuse what Claude learned.

Project-scoped memory lets invited teammates move useful historical context between supported coding agents and approved machines without silently retraining a model or broadening project access.

Project scope · member keys · Claude Code and Codex
05 // Senior → junior transfer

Juniors inherit trusted project history.

Authorised teammates can search the implementation patterns, decisions, failed approaches, and handoffs preserved by senior engineers, then use that context to move forward rather than rework the past.

Local MCP recall · project scope · revocable member access
06 // Secret control

Control what becomes retained evidence.

Run deterministic offline scanning before sealing. Known credential patterns and suspicious high-entropy values produce masked findings; high-confidence results can fail a gate without copying the secret into a report.

Offline scan · masked previews · JSON and exit codes
Security operations

Because preserved agent history is sensitive, security controls travel with it.

Secret scanning supports knowledge retention by controlling what becomes preserved evidence. Investigation and control workflows stay inside the customer boundary.

sealkeep scan … --json

Pre-seal control: masked findings and high-confidence exit status for scripts, CI gates, or customer monitoring.

sealkeep search … --content --json

Incident investigation: search preserved history locally and keep retrieval scoped to the authorised project.

sealkeep_search via MCP

Agent continuity: let an approved coding agent retrieve relevant project memory through its local SealKeep connection.

sealkeep audit --json

Operational evidence: export the local record of what SealKeep did to files for customer-owned review workflows.

sealkeep autopilot status

Local posture: check whether automatic preservation is configured on the current machine.

Available today as local CLI JSON and MCP interfaces. Sealkeep does not require a hosted plaintext search API; customer-specific SIEM or REST connectors can be scoped for an isolated enterprise deployment.

Why the boundary matters

Agent sessions contain more than chat.

They can include source code, incident details, infrastructure names, customer records, credentials accidentally pasted into a prompt, and decisions that reveal how critical systems work. Encryption is necessary; control over where the system runs is a separate requirement.

Residency

Keep operational data in the approved region

Your organisation selects the runtime, database, object-store, log, backup, and administrator-access locations.

Custody

A third party does not need the archive or its keys

Sessions are encrypted before archival, and storage credentials remain within the customer’s configured secret boundary.

Network policy

Support strict no-egress environments

The fully isolated agreement replaces the runtime licence path with an offline entitlement and removes mandatory Spala dependencies.

Control

Use your own IAM and operating procedures

Your administrators govern access, TLS, monitoring, retention, backups, incident response, and patch deployment.

Deployment choice

“Self-hosted” is not one boundary.

The order form names the exact mode so a connected licence path is never mistaken for a fully isolated deployment.

Connected self-hosted

The application, PostgreSQL, logs, and archive storage remain customer-operated. The deployment may contact Spala for licence validation; that path and its transmitted fields must be documented for review.

  • Customer infrastructure and selected regions
  • Customer database and object storage
  • Documented outbound licence path

Fully isolated self-hosted

Delivered under a special enterprise agreement with an offline entitlement and no mandatory Spala API, database, object store, authentication, telemetry, or licence call during ordinary operation.

  • No mandatory runtime egress to Spala
  • No standing HM Software administrator access
  • Customer-controlled support window, if requested
Shared responsibility

You operate the boundary. We deliver the product.

HM Software / Spala
  • Exported application bundle and deployment documentation
  • Build, version, and integrity information
  • Security updates and agreed support
  • Disclosure of optional external dependencies
Customer
  • Runtime, network, PostgreSQL, storage, and TLS
  • Identity, access, secrets, regions, and retention
  • Monitoring, backups, restores, and patch timing
  • Endpoint, recovery-material, and recipient lifecycle
Security & procurement review

Bring architecture, legal, and operations into the same review.

Inspect the public evidence before booking a call. Each artifact is presented as a published statement, public template, or open assurance item; customer-specific terms, regions, subprocessors, retention, support access, and deployment mode are completed in the agreement.

Contract · public templateData Processing AgreementArticle 28 roles, instructions, assistance, deletion, and audit termsReview template →
Security · control statementTechnical and organisational measuresEncryption, identity, network, development, incident, and continuity controlsReview controls →
Architecture · publishedArchitecture and data flowComponents, operators, visibility, key custody, residency, and egress pathsInspect diagram →
Ownership · publishedDeployment responsibility matrixClear ownership across product delivery, infrastructure, keys, support, and operationsInspect matrix →
Vendors · verification openSubprocessor registerApplicable to Spala-selected hosted services—not customer-selected infrastructureInspect register →
Assurance · roadmapThreat model, SBOM & audit roadmapKnown limitations, release evidence, completed tests, and independent-review gatesInspect evidence →
Assurance stated plainly.

Sealkeep does not claim a completed independent cryptographic audit today. The current Team model preserves access through remaining accepted project members; it does not yet claim a separate organization recovery recipient or transferable project-owner role. Test vectors, tamper tests, and deployment rehearsals support review but do not replace customer validation or legal advice.

Prove continuity on one repository.Preserve one team’s Claude Code and Codex history for 14 days. Then test whether another engineer can find and continue work they did not personally participate in.

Run a continuity pilot →Open public Trust CenterRequest the procurement pack

Start with your first session.

Install Sealkeep, choose where your history lives, and connect your coding agent.

npm install -g sealkeep
sealkeep start
Personal storage

Set up your own bucket or Google Drive.

Team setup

Connect an account and share a project.

Enterprise deployment

Explore company-controlled and isolated deployments.

Bring your team’s context together.

Choose the Team plan during setup, sign in, and open Projects in your account to create a shared project and invite teammates.

Open your account →
Reference

Commands

Every command takes --json. Run sealkeep help for the full list.

sealkeep autopilot

Preserve, index and upload automatically; keep original sessions by default

sealkeep autopilot --reclaim

Explicitly allow this machine to reclaim eligible originals

sealkeep autopilot status · off

Check on it, or stop it — every archive stays

sealkeep quickstart

Same setup, no background service

sealkeep status · doctor

What is archived; whether this machine is healthy

sealkeep queue run

Encrypt everything waiting

sealkeep daemon

Watch, seal, index and upload; reclaim only when enabled

sealkeep search <query>

Metadata search; --content searches inside sessions

sealkeep recover <id> <dest>

Restore original bytes; --native puts them back where they came from

sealkeep recover <filename>

The file an agent's resume just complained about, back in place

sealkeep archive <path> --stream

Seal straight to the bucket as a chunk folder, resumable mid-upload

sealkeep verify

Fetch every durable archive back and check it against the hash recorded at upload

sealkeep bridge start · watch

Live-share an ongoing session on a channel; members follow a hash-verified mirror, read-only

sealkeep share <id>

A sealed bundle under a one-time passcode — the phrase never travels

sealkeep mcp install

Register the vault as a tool server with Claude Code and Codex

sealkeep retention apply

Dry run; --confirm moves sources to the trash

sealkeep recovery kit · verify · seal

Printable sheet, type-it-back check, and a sealed escrow copy

sealkeep ui · tui

The dashboard, in a browser or the terminal

sealkeep audit

Everything Sealkeep has done to your files

A bucket without the usual afternoon

The step people give up on is cloud permissions. So Sealkeep writes it out — the console link, the commands with your own bucket and prefix already filled in, and a policy that grants the least it can.

$ sealkeep storage setup --provider r2 console link · bucket + prefix filled in · policy printed $ sealkeep storage credentials keys → OS keychain, never a config file

For S3 that is an IAM policy scoped to bucket/prefix/* with no delete permission and no wildcard resource. For GCS, a service account with an IAM condition pinned to your prefix. Nothing runs automatically — you read each step and paste it yourself.

S3 · Cloudflare R2 · Google Cloud Storage · Google Drive · S3-compatible like MinIO
credentials → macOS Keychain, Secret Service, or Windows DPAPI

Encryption, format v2

A random per-archive key encrypts the session in chunks under ChaCha20-Poly1305 (or AES-256-GCM), and that key is wrapped separately for each recipient — your phrase, and each device you trust.

Every chunk is authenticated over its own position, the archive's identity, and the total chunk count — so reordering, truncation, splicing and suite downgrade are all detectable rather than silent.

"VLA1" | len | envelopeJson | ciphertext

Not independently audited. Deterministic vectors and a full tamper suite; assumptions and limits are in the threat model.

Autopilot and the keystore trade-off

To unlock the vault without a human present, autopilot keeps your phrase in the OS keystore. Stated plainly: anything running as you can read it once you are logged in.

$ sealkeep autopilot --no-remember # supply the phrase per run instead of storing it

Either way, the phrase you wrote down stays your disaster-recovery path. Prefer to drive it yourself? sealkeep quickstart does the same setup with no background service.

Proving the archives are really there

A backup nobody has tested is a hope. sealkeep verify fetches every durable archive back and checks it against the hash recorded at upload.

ok 88de9eb4… 3.9 KB ok 847571ef… 2.5 MB warn roundtrip-178… listed, no object behind it

It re-downloads rather than trusting a HEAD — an object that lists but cannot be read back is named, not counted.

Your account

Sign in to manage storage, machines, recovery, and shared projects. New to SealKeep? Create an account here.

Free · $0 · no account

Your personal vault in your bucket or Drive

Personal sealing, verification, search, retention, MCP recall, and restore. S3, R2, GCS, Google Drive, MinIO. Your credentials, your custody. Shared team projects use managed project memory so every approved member can reach the same history.

sealkeep start → choose free
Pro Lite · $2/mo

Your storage, our safety net

A sealed copy of your key in escrow — openable only by your phrase — and every machine signed in: enroll a new laptop with one code, revoke a stolen one from this panel.

for people on their own bucket or gdrive
Managed · $6–$30/mo

Our bucket, zero setup

100 GB to 2 TB of managed storage for your ciphertext. Storage meter, archive list, and device revocation live in this panel once you sign in.

quotas brokered · keys never leave your machine
Team · $9/seat

Cowork through our relay

Members scoped to a project open what the team sealed — nothing else. Live session bridges relay through our plane: ciphertext in, ciphertext out.

one project · one memory · several people

The loop: create the account here → it hands you an enroll code → sealkeep enroll <code> on your machine, where the keys are made. This page then becomes your panel: storage, machines, members, revocation.

or use a password

or use a password

——

Recovery key

Loading…

Storage
Routing

Where new archives go

Rules live on your account — every machine of the vault follows the same ones.

  • The first available destination receives new archives.
  • A project pin overrides the ordinary order.
  • Full or capped targets pass to the next in the order.

Loading…

These rules choose storage; they do not grant project access. Project and folder identities are detected on each Sealkeep machine and never inferred from a typed name here. Use the local dashboard's project picker to pin a stable project identity to a destination. Open Projects here only to manage a shared memory pool and its members.

Google Drive is a personal-vault destination, not the shared-project memory plane. It holds whole archive objects and skips streaming; big under-pressure seals route to cloud or a bucket on their own. Shared team sessions always keep their managed project copy in Sealkeep Cloud. Adding Drive here sets the personal routing rule — the one-time consent happens on each machine.

Machines

Connected machines

Each connected machine signs its own uploads. Revoking one stops it writing here; the archives it already stored are untouched.

    Loading…

    Project memory

    Your projects and the people inside them

    Create a private memory pool, then invite only the people who should read, write, and search that project.

    Keys stay on your machines

    Create a project

    Name it now. It stays private until you invite someone.

    On your machine

    Continue in the local SealKeep dashboard

    Where to go

    If this account opened from your local dashboard, return to that tab—or use Back if it replaced the page. The browser already knows its exact port.

    No SealKeep window open?

    Run this on that computer. SealKeep reuses its running dashboard or opens the correct fallback port automatically.

    sealkeep ui
    Your package

    —

    Not storing with us? Your own bucket is free with the same encryption, and Pro Lite keeps key escrow and machine sign-in with no metered storage.

    Subscription—
    Renews—
    Billed through—

    Changing your package is handled by hand today. Email hello@spala.ai from this address and we will move you within one business day — your archives keep uploading throughout.

    What gets uploaded

    Your upload rules

    Saved to your account — every machine you connect follows these, the same way routing rules do.

    Everything you do not choose here stays local and is never uploaded.

    Enforced on your machine, before a session is read or sealed. Anything held back is never uploaded, so this is a rule about what leaves — not a filter we apply after it arrives.

    Activity

    What happened lately

    Every change made to this account, newest first.

      Loading…

      Account

      Name and email

      Your keys are made on your machine, so this page holds nothing that opens an archive. Signing out here does not stop a connected machine from archiving.