end-to-end encrypted

The vault you carry, not the one you trust

Knapsack encrypts every file on your machine before it leaves. We store ciphertext, sizes and timestamps — nothing else. Drive it from the CLI, a sync daemon, or a plain HTTP API.

XChaCha20-Poly1305 content Argon2id key derivation 3 regions EU only
4.1 PB stored 1.2 M objects / day 99.98% availability 0 plaintext bytes at rest
what you get

Boring storage. Serious crypto.

No AI features, no dashboards you never open. Knapsack does storage, sharing and sync — and does them the same way every day.

01

Client-side encryption

Content and file names are sealed before upload. The server sees an opaque blob, its length and a checksum — enough to store it, not enough to read it.

02

Content-addressed chunks

Files are split into 4 MB chunks and deduplicated per account. Re-uploading a 40 GB image after a one-line change moves a few megabytes.

03

Resumable transfers

Every upload has a session. Kill the process, lose the network, come back tomorrow — it continues from the last acknowledged chunk.

04

Expiring share links

Hand a file to someone without an account. Set a TTL, a download limit and an optional passphrase; revoke it at any point.

05

Versions and snapshots

The last 30 versions of every object are kept. Snapshot a whole prefix before a risky migration and roll the prefix back as one unit.

06

Sync daemon

Point it at a directory and forget it. Bidirectional, conflict-preserving, and honest about what it is doing in the log.

cli & api

Scriptable from the first minute

A single static binary, no runtime to install. The same operations are available over HTTP with a scoped token, so CI can push artifacts without shipping your master key anywhere.

  • Scoped tokens — read-only, write-only or prefix-bound, with an expiry.
  • Deterministic output--json on every command, stable field names.
  • No lock-inknapsack export writes a plain directory tree.
  • Linux, macOS, Windows — amd64 and arm64, one binary each.
# push a build artifact from CI
curl -X PUT https://api.knapsack.my/v1/o/builds/app.tar.zst \
  -H "Authorization: Bearer $KS_TOKEN" \
  -H "X-Knapsack-Sealed: v2" \
  --data-binary @app.tar.zst

# mint a 24h download link
curl -X POST https://api.knapsack.my/v1/share \
  -H "Authorization: Bearer $KS_TOKEN" \
  -d '{"path":"builds/app.tar.zst","ttl":"24h"}'

# { "url": "https://knapsack.my/d/8Qm2-vT1x",
# "expires_at": "2026-08-16T09:14:00Z" }
pricing

Pay for bytes, not for seats

Every feature is on every plan. Egress is included up to twice your stored volume per month; past that it is €4 per TB.

Pocket
€0 / month
25 GB · 1 device
  • CLI, API and sync daemon
  • Share links up to 24 h
  • 7 versions per object
Create account
Knapsack
€5 / month
1 TB · unlimited devices
  • Everything in Pocket
  • 30 versions and prefix snapshots
  • Share links up to 30 days, passphrase
  • Scoped API tokens
  • Region pinning (DE / FI / NL)
Get Knapsack
Expedition
€19 / month
5 TB · 10 members
  • Everything in Knapsack
  • Shared prefixes with per-member keys
  • Audit log, exportable
  • Support answers within 4 h
Get Expedition
questions

Answers before you ask

If I lose my passphrase, can you restore my files?

No, and that is the point. Your key is derived locally with Argon2id and never transmitted. We can reset your login so you can see the object list, but the contents stay unreadable. Print the recovery code when you sign up and keep it somewhere physical.

What exactly can you see on your side?

Ciphertext blobs, their byte lengths, upload timestamps, an account identifier and the IP of the connection. File names, directory structure and content are sealed. We publish the object schema in the docs so you can verify what a stored record looks like.

How fast is it, really?

Single-stream uploads saturate about 900 Mbit/s from a European connection; with four parallel streams the CLI reaches roughly 3 Gbit/s. Encryption is not the bottleneck — XChaCha20 runs at several GB/s per core.

Where is the data physically stored?

Three European regions: Frankfurt, Helsinki and Amsterdam. Each object is written to two regions by default. Paid plans can pin storage to a single region if a policy requires it.

What happens when a subscription lapses?

The account becomes read-only: you can list, download and delete, but not upload. That state lasts 90 days, we send two reminders, and only then is storage reclaimed.

Put your files somewhere boring

25 GB free, no card, no sales call. Install the binary and push something in under a minute.

Start free