Security

Taskriz is built so the people your Agent asks can trust what they see — and so what they tell your Agent stays between them.

Requests are sealed to their devices

Each request is encrypted to the recipient’s own devices, with keys created on those devices, and stored that way — so it opens only there.

Taskriz seals the request for your Agent, so its content passes through our servers briefly while it’s delivered; it is never stored or logged readable. Replies are sealed on the person’s device; Taskriz opens them only to check them and hand them to your Agent.

Files sent with a request or a reply are encrypted on our servers, but are not sealed to devices.

Technical details
  • Ed25519 signatures; HPKE (RFC 9180 — X25519, HKDF-SHA256, AES-256-GCM) wraps a fresh AES-256-GCM key for every message, which is never stored.
  • Sign, then encrypt: the signature covers the content and is checked after decryption, before anything runs. Routing details are repeated inside the signed message, so tampering shows.
  • Each Profile’s keys are created in the browser and kept there (IndexedDB). They are software keys, not hardware-backed.
  • An Agent’s key is pinned when it is first paired; a different key later is refused, never silently accepted.
  • A new browser is linked by typing a short code derived from its own keys, so a substituted key wouldn’t match; the server only relays ciphertext. Until a browser is linked, requests show as locked.
  • Taskriz sees the delivery details it needs — who a request is from and to, its id and timing — but subjects, summaries and content are encrypted.

Nobody gets a request without agreeing

An Agent can reach only people who have paired with it, and every new pairing is confirmed by email. An invitation email never contains the request itself, and saying no takes one tap — no account needed. Once someone declines, the inviting account can’t invite that email again, with any of its Agents. Unpairing removes the Agent’s requests.

Technical details
  • Pairing codes are single-use and expire after 15 minutes; pairing attempts are rate-limited.
  • A request waiting on an invitation is held encrypted for up to 3 days. Accepting requires signing in with the invited email.
  • How many people an account can reach — paired, or invited and waiting to answer — follows its plan: 10 on Free, 100 on Builder and 1,000 on Business (more on Scale — talk to us).

Your account

Passwords are long, checked against known breaches, and never stored — only a strong hash is. Sign-in is protected against guessing, and your session lives in a secure cookie that scripts can’t read.

Technical details
  • At least 12 characters, checked against Pwned Passwords using k-anonymity — only 5 characters of a hash leave our servers.
  • Hashed with scrypt (N=217, r=8, p=1) and a per-user salt.
  • Email is verified at sign-up (the link lasts 24 hours); reset links are single-use, last 1 hour, and sign out every other session.
  • Sessions: a random 256-bit id, stored only as a hash, in a __Host- cookie that is Secure, HttpOnly and SameSite=Strict; a new session at every sign-in.
  • CSRF protection: SameSite cookies, a signed CSRF token, and an Origin check.
  • 5 failed sign-ins lock the account for 10 minutes; sign-in, sign-up and email requests are rate-limited.

Agents and apps

Every Agent has its own credentials, and Taskriz keeps only a hash of its secret. Apps such as Claude Code sign in with your permission: you choose which Profile they act for, and you can disconnect them at any time in Settings.

Technical details
  • An Agent’s client secret is shown once and stored only as a hash; it is exchanged for access tokens that last 1 hour.
  • App sign-in uses OAuth 2.1 with PKCE (S256) and exact redirect URIs. Access tokens last 1 hour; refresh tokens rotate on every use, and reusing an old one revokes access.
  • Replies can be delivered to an Agent’s webhook over HTTPS, signed with HMAC-SHA256.

Agent interfaces run in a sandbox

The interface an Agent sends runs in a WebAssembly sandbox with no network or file access of its own, and is drawn from a fixed set of familiar building blocks — not raw web pages. Pictures come through Taskriz, so an image’s server never learns who opened a request, or when.

Technical details
  • An interface’s code is checked against its signature before it runs; it can only describe controls, which the app draws.
  • The image relay fetches HTTPS images from public addresses only (PNG, JPEG, GIF, WebP, AVIF, up to 2 MB — never SVG), with no cookies or referrer.
  • Agents can test an interface first; it runs isolated, in its own process with no permissions.

Infrastructure

Taskriz runs on Amazon Web Services. Data is encrypted at rest and every connection is encrypted in transit.

Technical details
  • Database and file storage encrypted with a key managed in AWS KMS, rotated automatically; point-in-time recovery for the database.
  • The site and the app’s connections are served through Amazon CloudFront’s global edge network, so pages load and secure connections start close to you; requests themselves are processed and stored in AWS, not at the edge.
  • TLS 1.2 or later; HSTS with preload.
  • A strict Content Security Policy and security headers — rated A+ by Mozilla Observatory.
  • Files are uploaded and downloaded through short-lived links (15 and 5 minutes) and are deleted with their request.

Logging

Our logs record delivery details only — never the content of requests or replies, passwords, tokens or keys.

Reporting a vulnerability

If you think you’ve found a security problem, please email support@appeggio.com with the details. We’ll look into it promptly and keep you informed.