Last updated 2026-09-25. Connected apps and workspace access update.
Terms of service
These terms are a contract between you and the operator of vitrinka. Read them before you create an account. If you do not agree with them, do not use the service.
1Who we are
vitrinka is operated by LEFTEQ s.r.o. ("we", "us"), a company registered in the Czech Republic.
- Registered name
- LEFTEQ s.r.o.
- Registered address
- Herálecká IV 1583/4, Krč, 140 00 Praha 4, Czech Republic
- Company ID (IČO) / VAT ID (DIČ)
- 21624062 / CZ21624062
- Contact
- hello@vitrinka.ai (support) · legal@vitrinka.ai (legal)
The service is available at https://vitrinka.ai and on the related hosts we operate, including https://app.vitrinka.ai and https://share.vitrinka.ai.
2What vitrinka is
vitrinka is a workspace for teams and individuals building software with AI coding agents. You publish screenshots, files, reports and recorded browsing sessions from your own applications, annotate them on shared boards, and let AI agents pick the annotations up as work.
The product includes:
- annotation boards, screenshot sets, an image library, documents, and tasks, sprints and milestones;
- recorded browser sessions ("journey recorder") with replay;
- an HTTP API, a command line client and an MCP server for agents, including OAuth connections for AI assistants such as Claude and ChatGPT;
- managed AI through Eve using prepaid credits, or AI through your own provider connection;
- share links that let people outside your workspace see one board.
We change and improve the product continuously. Features can be added, altered or removed. We will not remove a feature you are paying for without telling you first.
3Your account
You need an account to use vitrinka. You can sign in with an email and password, with a passkey, with GitHub, or through your organization's SSO. We handle identity ourselves — passwords are stored only as salted argon2id hashes, passkeys as public credentials, and neither ever leaves our infrastructure in a recoverable form. GitHub sign-in and Enterprise SSO put that provider in the path only because you chose it.
- You must be at least 16 years old.
- You can use vitrinka for your work or for yourself. It is not aimed at children.
- Give us a real email address. We use it for verification, password resets, invitations, billing and service notices.
- Keep your password, passkeys and API tokens to yourself. Everything done with your credentials counts as done by you.
- Tell us promptly if you think an account or token has been compromised.
Signups can be gated by a waitlist. Being on the waitlist does not entitle you to access. An invitation from an existing organisation bypasses the waitlist.
4Organisations, workspaces and roles
An organisation is the billing and membership unit. A workspace is a tenant inside it: it owns its own database file, its own object-storage prefix, and — as section 16 explains — its own encryption key.
- Organisation roles are owner, admin and member. Workspace roles are owner, admin, member and viewer.
- Organisation owners and admins can administer every workspace in the organisation. Organisation members work only in the workspaces they have been added to.
- The person who signs up becomes the owner of their organisation and of their first personal workspace.
- An organisation and a workspace must each keep at least one owner. The last owner cannot be removed.
- The organisation owner is responsible for who is invited, what they can see, and the bill.
If you sign up with a work email and act for your employer, you confirm you are allowed to bind that employer to these terms.
5Your content
Your content stays yours. Screenshots, uploads, PDFs, HTML artifacts, board pages, annotations, comments, recorded sessions, project indexes and anything else you or your agents put into a workspace belong to you or your licensors.
To run the service, you grant us a worldwide, non-exclusive, royalty-free licence to host, store, copy, transmit, resize, render, index and display your content — only to operate, secure and support vitrinka for you, and only for as long as you keep the content in the service or as our backups retain it.
We do not use your content to train AI models. We do not sell it. We do not use it for advertising.
You are responsible for your content being lawful, and for having the rights and, where required, the consents needed to put it into vitrinka.
6Acceptable use
Do not use vitrinka to:
- break the law, or infringe anyone's intellectual property, privacy or confidentiality;
- upload malware, or use artifact HTML to attack other users, our infrastructure or third parties;
- probe, scan or attack the service, other tenants, or the isolation between workspaces;
- circumvent quotas, seat limits, the waitlist or billing;
- resell the service, or run it as a backend for a competing product;
- store special-category personal data (health, biometrics, political opinions and the rest of GDPR Article 9), payment card numbers, or government identity documents. vitrinka is not built for that kind of data, and this is a hard rule, not a recommendation.
We can remove content and suspend access when we have a concrete reason to believe this section is being broken. Where we can, we tell you first.
7Recorded sessions
The journey recorder captures what happens in an application you are testing: DOM recordings for replay, screenshots, navigation, clicks, console output and network requests.
This is the sharpest surface in the product, so it has its own rules.
- Record only applications you are entitled to record.
- Anything that was on screen or in a request can end up in the recording, including other people's personal data.
- The recorder redacts by default — authentication headers and known-sensitive body fields are scrubbed and form inputs are masked, and your workspace can extend the rules — but redaction is key- and pattern-based, not understanding: assume anything else that was visible on screen or travelled in a request is captured. Configuring your workspace's redaction policy to fit the application you record is your responsibility.
- Do not record production sessions containing real customers' personal data unless you have a lawful basis for it and have told them.
- For everything a recording contains, you are the data controller and we are your processor. The privacy policy explains what that means.
9Artifacts and user-supplied HTML
vitrinka renders HTML that you or your agents upload. That HTML is your content and runs in your browser.
We serve it sandboxed with a restrictive content security policy. We do not review it. You are responsible for what your artifacts contain and do.
10AI features and credits
AI in vitrinka runs on one of two paths, and your organisation decides which:
- Your own provider key. You connect OpenRouter, OpenAI, Anthropic, any OpenAI-compatible endpoint, or an eve endpoint of your own. Your key is encrypted with AES-256-GCM before it is stored, bound to your organisation so a copied ciphertext will not open elsewhere. Content sent to your provider is governed by that provider's terms and privacy policy, not by ours. Read them. Your provider account, its costs and its limits are yours.
- Eve, on credits. Eve is our managed AI service and handles the upstream model providers. Pro and Team include the monthly AI allowance shown on the pricing page; Starter and Free include no monetary AI allowance. You can buy prepaid AI separately from your membership. 100 credits represent USD 1 of customer spending value, and usage is charged at twice the recorded upstream model API cost.
- Included credits become available after the subscription-period payment succeeds and expire at that paid period's end; they do not roll over. Purchased credits do not expire and survive membership changes. We reserve a maximum charge before a call and release any unused amount after its actual cost is confirmed. There is no automatic refill or automatic overage charge. Refunds follow sections 13 and 14 and applicable law.
- If a credit-pack payment is refunded or disputed, we withdraw the corresponding unused credits from that purchase. A partial refund withdraws a proportional amount. Other purchases and your membership remain separate. If the affected credits have already been used or are reserved for an unfinished call, we pause new managed AI calls and new credit-pack purchases while we review the shortfall. We do not automatically charge your card or deduct that shortfall from later purchases. If the payment reversal is undone, we restore only the unused credits previously withdrawn.
- Agents can act on your boards: create cards, reply, attach screenshots, change status, manage tasks. Attribute those actions to the token or connection that made them.
- AI output can be wrong. Check it before you act on it. We do not warrant that any AI-generated content is accurate, complete or fit for anything.
AI-generated replies and cards are labelled as such in the product. If your organisation has neither credits nor a connected provider, AI features simply do not run — nothing is sent anywhere.
11API tokens and automated access
You can mint personal access tokens (tied to you), workspace service tokens (for CI and bots) and agent tokens (an AI actor's own identity). Secrets are shown once and stored only as a hash — we cannot recover a lost token, only replace it.
- A token carries a role and never more power than the person who minted it.
- You are responsible for what your tokens do.
- Revoke tokens you no longer need. Revoke them immediately when someone leaves.
- Do not paste tokens into third-party services you would not trust with the workspace itself.
Automated use must respect the rate and size limits in the product. Bulk scraping of other tenants, or of the platform itself, is not allowed.
12Connected apps
You can authorise an AI assistant — Claude, ChatGPT, or any Model Context Protocol client — to act on the workspaces of your organisation through OAuth. The consent screen names the app, its origin, the home workspace and the permission level (read, or read and write), and says that the connection reaches every workspace of that organisation you are a member of, before anything is granted.
- A connected app acts as you: what it creates, edits or reads counts as done by you, within the scope you granted and never with more power than your own role.
- Connect only apps you trust with the workspace itself, and only from vendors whose data practices you accept — what a tool call returns to the assistant is thereafter governed by that vendor's terms and policy.
- You can revoke a connection at any time in Settings → Connected apps; workspace admins can revoke any connection into their workspace. Revocation cuts the app off immediately.
- We revoke connections automatically on signs of token theft or when the granting user's membership ends. Consents, revocations and denied attempts are recorded in the organisation's security audit trail.
The privacy policy's section 7 describes exactly what a connected app can reach and how its tokens are handled.
13Plans, quotas and billing
Plans are Free, Starter, Pro and Team, plus a negotiated Enterprise tier (see /legal/enterprise). Membership is per organization, and storage is shared across its workspaces. The storage, seat and board limits each plan enforces are stated on the pricing page, which reads them from the same source the server enforces them from.
Prices are stated in US dollars, exclusive of VAT. Applicable tax and the final amount are shown at checkout; tax treatment depends on your location and business tax information. Board ceilings exist to stop abuse; storage and seats are membership limits, while managed AI has its own prepaid balance.
- Payments run through Stripe. We never see or store your card number.
- Subscriptions renew monthly until you cancel — we tell you the price and the renewal before you subscribe. Cancel any time in the Stripe customer portal; access continues to the end of the paid period.
- Any price change or proration is shown before you confirm a plan change.
- If a downgrade puts you over a limit, new boards or uploads that would exceed the limit are blocked until you free up space or upgrade. Existing content stays available. Nothing is deleted because of a plan change.
- Creating boards and uploading stop at the cap with an upgrade prompt. Reading always continues.
- We can change prices for good reason — our costs, taxes, or the product's scope changing materially. Existing subscribers get at least 30 days' notice by email before a change applies to them, and can cancel before it takes effect; a change never applies retroactively to a period already paid.
- For businesses, fees are non-refundable except where these terms or the law say otherwise. If you are a consumer, section 14 gives you a genuine withdrawal right.
- Late payment can lead to suspension after notice.
14If you are a consumer
vitrinka is built for professional work, but nothing stops you subscribing as an individual. If you do — as a natural person acting outside your trade or profession — this section applies to you, and nothing anywhere else in these terms reduces the rights the law gives you.
- Withdrawal. You can withdraw from a paid subscription within 14 days of subscribing, without giving a reason. Because the service starts immediately at your request, we refund what you paid minus a proportional amount for the days already elapsed. To withdraw, email legal@vitrinka.ai from your account address, or use any clear statement; we confirm receipt by email and refund within 14 days, to the payment method you used.
- Conformity. EU law on digital services (Directive 2019/770 and its Czech transposition) gives you remedies if the service does not conform to the contract — including bringing it into conformity, a price reduction, or termination. These rights are unaffected by anything in these terms.
- Liability. The cap and exclusions in section 22 do not apply to you to the extent the law does not allow them; your statutory rights control.
- Disputes. You can raise a dispute out of court with the Czech Trade Inspection Authority (Česká obchodní inspekce, Štěpánská 796/44, 110 00 Praha 1, https://www.coi.cz/en/information-about-adr/); if you live in another EU country, the European Consumer Centres Network (ECC-Net) helps with cross-border complaints. Choosing Czech law in section 27 does not deprive you of the mandatory protections of the country where you live, nor of your home courts.
15Free plan
The Free plan is provided as-is, with no availability commitment and no included monetary AI credits. We can change its limits, or stop offering it, with 30 days' notice. Free workspaces that have shown no activity for 12 months may be deleted — we email the owner first and wait at least 30 days.
16Availability, encryption and backups
We aim to keep vitrinka up and fast, but we do not promise a service level on self-serve plans (Enterprise customers can agree one — see /legal/enterprise). Deployments, maintenance and dependencies on third parties (payments, hosting, your AI provider) can interrupt it.
Your content is encrypted at rest at two independent layers:
- Per-workspace encryption. Every workspace has its own data-encryption key. Your files — uploads, screenshots, recorded-session streams — and the most sensitive database content are encrypted with that key (AES-256-GCM) before they reach disk or object storage, so the storage provider only ever holds ciphertext. Workspace keys themselves are stored only in wrapped (encrypted) form under a separate key-encryption key.
- Full-disk encryption. On the production host, the volume holding the databases additionally sits on LUKS2 full-disk encryption whose unlock is bound to our private network — a stolen disk cannot be opened outside it.
We take frequent encrypted backups of the control and tenant databases; backup archives are sealed under the same key hierarchy and are ciphertext wherever they are stored, and they rotate out after 30 days. Object storage is not versioned and we do not promise storage-level replication. Backups are for our disaster recovery. They are not a substitute for your own copies of anything you cannot afford to lose. Deleting a workspace destroys its data-encryption key, which makes its encrypted content permanently unreadable at once — in live storage, caches, and backups' content alike.
17Suspension and termination
You can stop using vitrinka at any time and close your account.
We can suspend or terminate an account or a workspace if:
- these terms are broken in a way that harms other users, us, or a third party;
- payment fails and is not fixed after notice;
- we are legally required to.
We aim to give notice and a chance to fix things first, unless immediate action is needed to stop harm. On termination your right to use the service ends. Deletion of your data follows the privacy policy.
18Getting your data out
Your content is exportable while your account is live: sets download as zip archives, board and library content is reachable through the API with your token, and the API is documented.
A one-click full export does not exist yet. Until it ships, write to privacy@vitrinka.ai and we will hand you a machine-readable archive of your data within 30 days — the same address handles account deletion, as the privacy policy describes.
19Our intellectual property
The vitrinka software, design, documentation and marks are ours or our licensors'. These terms give you a right to use the service, not to the software behind it.
Parts of the project are published separately and carry their own licences, which govern those components: the command line client is published on npm under the MIT licence, and the client kit (the Expo module and browser extension) is published under the Elastic License 2.0.
You may not copy, decompile or reverse engineer the hosted service, except to the extent that mandatory law allows it.
Feedback you send us can be used freely, with no obligation to you.
20Third-party services
vitrinka depends on services we do not control: Stripe for payments, Hetzner for hosting and object storage, Amazon Web Services (SES, EU region) for transactional email, optionally Telegram for notifications, optionally GitHub for sign-in and commit metadata, the model providers behind eve when you use credits, and whichever AI provider or assistant you connect. Their outages and their terms affect your use of vitrinka. They are listed, with entities and locations, at /legal/subprocessors.
21No warranties
For business customers the service is provided "as is" and "as available", and to the extent the law allows we exclude all implied warranties, including fitness for a particular purpose, merchantability, uninterrupted operation and error-free content. If you are a consumer, your statutory conformity rights (section 14) are unaffected.
We do not warrant that AI output, board content or recorded sessions are accurate or complete.
22Limitation of liability
To the extent the law allows:
- we are not liable for lost profits, lost revenue, lost data, business interruption, or indirect or consequential loss;
- our total liability in any 12-month period is capped at the fees you paid us in the 12 months before the event that caused the claim, or EUR 100 if you paid nothing.
Nothing here limits liability that cannot be limited under the applicable law, including liability for damage caused intentionally or by gross negligence, and for harm to health or life. For consumers, section 14 controls.
23Your responsibility to us
This section applies only if you use vitrinka in the course of a business. If a third party brings a claim against us because of your content, your recorded sessions, or your use of the service in breach of these terms, you will cover the reasonable costs and damages we incur. We will tell you promptly and let you take part in the defence.
24Data protection
How we handle personal data is described in the privacy policy, which forms part of these terms.
Where you put personal data into a workspace, you are the controller and we are your processor. Our data processing agreement, published at /legal/dpa, is incorporated into these terms for every organisation whose workspaces contain personal data — no signature required, though we countersign a copy on request.
25Enterprise customers
Organisations on the Enterprise tier contract under the enterprise terms at /legal/enterprise, usually together with an order form. Where an order form or the enterprise terms conflict with these terms, they control, in that order. Self-hosted deployments are licensed separately under the agreement named in their order form.
26Changes to these terms
We can change these terms for good reason: the product, the law, our costs or our suppliers changing, or a clause proving unclear or unenforceable. For material changes we will email account owners and post a notice in the product at least 30 days before they take effect, naming what changed. If you do not accept a change, cancel before it takes effect — the change never applies to a period you already paid for. Continuing to use the service after the date means you accept it.
27Governing law and disputes
These terms are governed by Czech law, and the contract is concluded in English. The courts of the Czech Republic have jurisdiction.
If you are a consumer, neither choice deprives you of the mandatory protections, or the courts, of your country of residence — and section 14 lists your out-of-court options.
28Everything else
- If a clause is unenforceable, the rest stays in force.
- Not enforcing a right once does not waive it.
- You may not transfer these terms without our consent. We may transfer them to a successor of our business, and will tell you if we do.
- These terms, the privacy policy, the data processing agreement where it applies, and any order you place through Stripe are the whole agreement between us — plus, for Enterprise customers, the documents named in section 25.
29Contact
Support: hello@vitrinka.ai. Legal: legal@vitrinka.ai. Privacy: privacy@vitrinka.ai.
Postal: LEFTEQ s.r.o., Herálecká IV 1583/4, Krč, 140 00 Praha 4, Czech Republic.