Privacy

What leaves your machine, when, and where to. Written to be read in full, and verifiable: everything installed on your machine is open source.

Last updated: November 9, 2026.

In short

On the free plan, your sessions, your code and your hours never leave your machine. Estela only checks npm once a day to tell you about new versions, and you can turn that off with ESTELA_NO_UPDATE_CHECK=1. If you use estela delivery, it also reads your GitHub or GitLab through your own gh or glab.

With ESTELA_OFFLINE=1 no network connection is opened at all. If you create an account, only what you turn on is uploaded, feature by feature: it's all in this table.

Who is responsible

Zaisor Technology LLC runs getestela.dev and is responsible for the data described here. For anything about your privacy (seeing your data, correcting it, deleting it, or just asking) write to hola@getestela.dev. A person replies.

On your machine

The CLI reads what your tools already keep on your disk:

  • Sessions from Claude Code (~/.claude/projects), Codex (~/.codex/sessions) and GitHub Copilot in VS Code (VS Code's workspaceStorage). From each turn it keeps the time, model, tokens, folder and branch. Never the text of your prompts or of the replies.
  • Your repositories' git history, via git log: for each commit, the hash, date, author (name and email), branch, first line of the message, and which files it changed and by how many lines. It installs no hooks and doesn't touch your repository.

All of that is stored in ~/.estela/estela.db, a SQLite database on your disk. It isn't encrypted: it's protected by your user's file permissions, just like the agent sessions it reads. Next to it there are a few small cache files (statusline.json, update-check.json).

The estela web dashboard listens only on 127.0.0.1: it can't be reached from another machine and loads nothing from the internet. The reports, receipts, badges and PDFs you generate stay on your disk until you send them.

Network connections

These are all the connections the CLI opens. There are no others.

WhenWhere to, and what's sentHow to turn it off
New version notice registry.npmjs.org, at most once a day. One request asking for the latest version: npm sees your IP, but none of your data. ESTELA_NO_UPDATE_CHECK=1. It's also skipped when CI is set.
Notice in the local dashboard getestela.dev, only if you linked an account. None of your data. Without an account, the local dashboard connects to nothing. estela logout or ESTELA_OFFLINE=1.
Account features getestela.dev, only when you use them. What each one sends is in the next table. Don't use them, or ESTELA_OFFLINE=1.
Reading your GitHub or GitLab Only with estela delivery, on a project set to --system github or gitlab. It doesn't go to getestela.dev: your own gh or glab asks GitHub or your GitLab, with your login. Estela has no token of its own. It asks for issues, PRs or MRs, their labels and milestones; nothing of yours is sent. What it reads is kept in your database so it can be repeated offline. --offline, ESTELA_OFFLINE=1, or not setting GitHub or GitLab as the project's tracker.

ESTELA_OFFLINE=1 turns off all four. Every call to the account also carries the Estela version, your terminal's language and your machine's token.

What each account feature uploads

The account is optional and having one uploads nothing by itself: each feature sends only its own data, and only when you use it.

FeatureWhat's sent to getestela.dev
Sign in
estela login
Your email. The server keeps the email, when the account was created and, for each linked machine, its Estela version and when it was last used.
Publish a dashboard
estela publish
The whole dashboard: project and client name, hours per day, the description of each block (the first line of its commits), branches, the most rewritten files, and the names of the people in the team with their commit counts. Amounts only with --with-amounts. Plus the client emails you give with --client, who get an email about it. Before uploading, Estela shows you this summary and asks you to confirm. Anyone with the link can see it, with no password. estela unpublish deletes it from the server.
Sync (Pro)
estela sync
Only for the projects you turn on with estela sync enable: each time entry, with start and end, duration, description, branch, commit hashes, agents used, whether it's billable and its AI cost. It's your own account: it's there so you see the same thing on all your machines.
Team (Teams) For each team project you accept: your total hours and hours per day, the detail of each block (date, duration, description, branch and hashes), and the hash of the repository's first commit, to check it's the same repository. AI cost only if you say yes (see below).
Pay for Pro or Teams Stripe handles the payment. We keep your email, your Stripe customer ID and your subscription status. Stripe sees and stores the card: we never see a single digit.
Website forms What you write in them: your email and message, and your name, company or phone if you give them. It's stored on the server and the notice reaches us by email at hola@getestela.dev through Resend. If you tell us how you found us and you accepted cookies, Google Analytics gets only that category (for example, "GitHub"), never your email. If you tick "Send me news", your email goes on Resend's list; if you don't, it goes on none. At most one email a month, and you can unsubscribe from any of them.

The token that links your machine is stored as is in ~/.estela/estela.db; the server only keeps its fingerprint (SHA-256), not the token. estela logout revokes it.

What never leaves

  • The text of your prompts or of your agent's replies. Estela doesn't keep it even on your own machine.
  • Your source code and the diff of any commit.
  • The body of commit messages. Only the first line of each commit travels, and only in dashboards, sync and Teams.
  • AI cost inside a published dashboard.
  • Your payment card, in any form.

AI cost is a special case

In a team project, a person's AI cost is not shared unless they grant it. Whoever runs the team can ask for it; the person asked gets a notice and decides. If they say no, the team lead learns that it was declined, never the number. If they say yes, what's shown is the project total, never person by person: anyone who contributes with their own AI subscription is left out of the calculation, so nobody can work out their spend by elimination.

Who it's shared with

Only with those who need the data to provide the service:

WhoWhat forWhat they get
DigitalOceanHosting the server Everything getestela.dev stores, on its Frankfurt server.
ResendSending email Sign-in links, invitations, the notice to a client when you share a dashboard with them, replies to what you write to us, internal notices (new account, payment) and the news list: each recipient's email and the content of that email.
StripeCharging for Pro and Teams Your email and the payment details you give them directly.
Google AnalyticsCounting visits to this website Nothing until you accept the cookie notice. Only on the website, never in the CLI or your dashboard.
npmThe new version notice One request a day from the CLI, with none of your data (it can be turned off).

There are no others. Nobody buys or receives your data for advertising.

Where it lives and how it's protected

The getestela.dev server is in Frankfurt, Germany, on DigitalOcean. All connections are encrypted (HTTPS). The server's database is not encrypted at rest: it's protected by access to the server. A backup of that database is made every day, on the same server and also unencrypted, and it's deleted automatically after 14 days.

If you only use the free plan, your information never leaves your disk.

How long it's kept

  • Your account and what you uploaded: for as long as the account exists.
  • Backups: 14 days. If you delete your account, backups from the 14 days before may still exist until they expire on their own.
  • Web server logs: the IP, date, requested address and browser of each visit, for 14 days.
  • Form messages: until you ask us to delete them. They aren't tied to your account, so deleting the account doesn't delete them: write to us and we'll remove them.

Your rights

You can see what we hold about you, correct it, take it with you, or ask for it to be deleted. You do the last two yourself, in your account, under Facturación (Billing):

  • Download my data: a JSON with your account, your machines, your dashboards, your synced hours, your teams and your subscription.
  • Delete my account: cancels any subscription you have and deletes the account, its machines, its hours, its teams and its published dashboards (the link stops working right away). It also takes you off the news list.

Hours you sent to someone else's team project stay in their project even if you delete your account: they're part of their work. If you want them removed, write to us.

What's on your machine is yours and under your control: estela unpublish takes down your dashboards, estela logout unlinks the machine, and deleting ~/.estela deletes everything.

For anything else, write to hola@getestela.dev; a person replies, usually within a week. And if you think we haven't handled it properly, you can complain to the data protection authority in your country.

Cookies

One technical cookie, always on: the one that keeps you signed in to your account (estela_session). No advertising cookies and no cross-site tracking.

If you accept the notice shown when you arrive, Google Analytics sets its own to count visits, and never before. The site uses Google's Consent Mode: Google's script downloads with the page, but it's explicitly told not to store anything, and no visit or event is sent to it until you accept. If you decline, everything works the same.

Minors

Estela isn't meant for anyone under 16 and we don't knowingly collect data from anyone below that age.

Changes to this policy

If something changes, it's changed here with the date at the top. If what's stored or who it's shared with changes, we'll also tell you by email.

Anything unclear? Write to us at hola@getestela.dev.