Privacy policy
What Directionally Local collects for dl, Autopilot, the free tier and our websites, what we never collect, and how to ask us to delete it.
Last updated: 4 November 2026
The short version. dl and Autopilot run on your own computer or server. With your own provider key, nothing is sent to us. With the free tier, we keep who you are on GitHub and counts of what you used: tokens, cost and session events. We never keep your prompts, code or file contents. Your prompts pass through our service to our model provider, Luminal, which handles them under its own policies and may route some requests to DeepSeek in China (see where your prompts go).
Who we are
Directionally Local is a brand of Intel Deployed Pte. Ltd., a company registered in Singapore (UEN 202643834K). "We" and "us" mean that company.
This policy covers:
- dl, the command-line installer (npm package
directionallylocal); - Autopilot, the terminal coding agent (npm package
autopilot-ai); - the free tier, the managed service at free.directionallylocal.com;
- our websites, directionallylocal.com and dl.new.
Write to us at contact@directionallylocal.com.
What we collect
When you use your own key or a local model
dl and Autopilot are open-source software that you run yourself. With your own provider key, Autopilot sends requests straight to that provider, and nothing goes to us. The provider's own privacy policy covers what you send it.
These stay on your computer:
- your settings, keys and session history;
- Autopilot's memory, in
.autopilot/inside your project or in your user data folder; - setup import, which reads other tools' settings on your computer;
- the Claude Code handoff, which reads your Claude Code transcript on your computer. It goes only to the model you use, as part of the conversation.
When memory search uses embeddings, the text being indexed is sent to your configured provider, not to us. If you set up OpenTelemetry export, logs go only to the endpoint you configure.
Autopilot checks the npm registry for a newer version, at most once an hour. It may also download the public model list from models.dev. Neither request goes to us, and neither carries your code or prompts. The install script at directionallylocal.run and dl.new is a normal download from our websites. We don't keep a record of who downloaded it; we only count downloads (see below).
When you install dl
The install pages, directionallylocal.run and dl.new (including invite links and dl.new/continue), count each install script they serve: which page, the day, and whether curl or wget fetched it. When the install script finishes, it sends one count too: the operating system (macOS or Linux), the chip type (Arm or x86), whether it set up a laptop or a server, the dl version, whether it worked or the step where it failed, and which page it came from. We keep only daily totals. We don't store your IP address or anything that identifies you or your computer, so these counts can't be linked to you or to a free-tier account. To limit how often one address can send a count, we use a one-way hash of the IP address that changes every day, not the address itself. Cloudflare's request logs (see hosting logs, below) cover these requests as they do the free tier. To turn the install count off, set DL_NO_TELEMETRY=1, for example curl -fsSL https://directionallylocal.run | DL_NO_TELEMETRY=1 sh. DO_NOT_TRACK=1 also works, and the script never sends it in CI.
When you use the free tier
When you sign in. You sign in with GitHub. We ask GitHub for no extra permissions, only your public profile. GitHub's access token is used once, to learn who you are, and is never stored. We keep:
- your GitHub numeric id and username;
- how you were admitted (invite code, open admission or admin) and when;
- the invite code you used, linked to your account (we store codes only as hashes);
- your account status (active or suspended), your weekly allowance, and what you have used of it this week.
We read your GitHub account's creation date to check that the account is old enough (currently 30 days) for sign-up without an invite. We don't store that date.
To keep you signed in. Refresh tokens and server keys are stored only as SHA-256 hashes. For each server key we also keep its name, when it was created and when it was last used. Codes used during sign-in are stored as hashes, last 10 minutes, and are deleted after they expire. If the program that signs you in sends a device identifier, we store it with your GitHub id so a device can hold only one free account. Autopilot doesn't currently send one.
For each model request: the time, the model, the counts of prompt, cached and completion tokens, the tokens charged to your allowance, the cost in US dollars, whether it succeeded, and how long it took. We also keep a daily total per person of requests, events, tokens and cost.
Session events from Autopilot. These are sent only while the free tier is your active provider and you are signed in. Each event has a type (session started, session ended, turn ended, pull request opened, or error), a time, and a random session id made for the free tier, not your local session name. It can carry only these details:
- number of turns and session length;
- how many times each tool was called, by tool name only, never the arguments;
- model and provider;
- why the session ended, and an error code (a short code, never the error message);
- Autopilot version and operating system;
- a SHA-256 hash of the repository's git remote URL, never the URL itself.
The service drops anything else before it is stored.
IP addresses. We use your IP address to rate-limit the service: sign-in attempts, invite-code attempts, API calls, and new accounts per network (3 a day). Each limit is a counter whose key includes the IP address, with the time it was last updated. These counters aren't linked to your GitHub account.
Cookies. During GitHub sign-in, one short-lived cookie (10 minutes) ties the GitHub round trip to your browser. The sign-in pages run no scripts and have no analytics. Admins of the service get a session cookie for the admin dashboard.
Hosting logs. The free tier runs on Cloudflare Workers. Cloudflare's request logs are turned on for operating and debugging the service. They hold request details, such as time, path and status, for a limited period set by Cloudflare.
On our websites
- dl.new uses Cloudflare Web Analytics, which counts page views without cookies. Fonts and images come from dl.new itself. As with the free tier, Cloudflare's request logs are turned on for dl.new.
- directionallylocal.com also uses Cloudflare Web Analytics. It sets no cookies, stores nothing in your browser, and doesn't build a profile of you or follow you across sites. It counts page views by page, referring site, browser and device type, and country, and measures how fast pages load.
- The contact form on directionallylocal.com asks for your country, company, work email, company size and industry. It sends them to us by email, and the website doesn't store them anywhere else.
- Embedded posts. A few blog posts embed posts from X, which loads X's script on those pages.
What we never collect
- Your prompts, model responses, code, file paths or file contents, terminal output, or tool arguments.
- Your own provider keys. They stay on your computer, and Autopilot sends them only to that provider.
- Your GitHub access token, or anything from GitHub beyond your public profile.
We don't sell personal data. We don't use free-tier data for advertising.
Where your prompts go on the free tier
Our free-tier service passes each request to our model provider and passes the response back to you. We keep only the counts listed above. We don't store your prompts, code or the responses. The providers that answer your requests handle them under their own policies, as described here.
Luminal
Requests go to Luminal (Luminal AI, Inc.). Luminal serves them on servers it operates on third-party cloud infrastructure. According to Luminal's privacy policy (effective 7 October 2026):
- Backup providers. When Luminal's servers are full, failing or being updated, Luminal may send a request to one of its backup providers. Luminal decides when this happens; we don't control it. The backup providers are:
- Fireworks AI (United States), which says it doesn't log or store prompts or outputs and doesn't train on them;
- Z.AI (Singapore), which says it doesn't store the content sent through its API;
- DeepSeek (Hangzhou DeepSeek Artificial Intelligence Co., Ltd., China). DeepSeek's terms allow it to use inputs to train and improve its models, and it stores data in the People's Republic of China. Luminal says it has no agreement with DeepSeek that changes this.
- What Luminal keeps.
- A sample of text requests, with full content and output, for safety and compliance checks. The samples are deleted after 7 days.
- Conversations it flags, for up to 90 days.
- The content of failed requests, for 7 days, to diagnose them.
- Operational logs without request content, for up to 90 days.
- Training. Luminal says it doesn't train models on your requests or outputs. A backup provider that answers a request may still use it under its own terms, as DeepSeek's terms allow.
If you don't want your requests to possibly reach DeepSeek, or to be sampled for 7 days, don't use the free tier. Use Autopilot with your own key instead.
Other providers
The free tier doesn't fall back to any other provider automatically. We may switch to OpenRouter or another provider instead if we change providers. If we do, we'll update this policy.
Why we collect it
- To run the free tier: to sign you in, apply your weekly allowance, and keep the free tier within its overall budget.
- To prevent abuse: one account per person, rate limits, the account-age check, limits on new accounts per network, and suspending accounts that break the terms.
- To improve the products: usage counts tell us which tools are used, what fails, how much the free tier costs per person, and whether people come back. The admin dashboard reads only daily counts per person.
- For the websites: to see which pages are read, and to reply to your messages.
Legal bases and consent
Singapore (PDPA). For the free tier, we rely on your consent. Before you sign in, the sign-in page tells you what we collect. Usage counts are the condition for free tokens. You can withdraw consent at any time. We then stop collecting and close your free-tier account, and you can keep using Autopilot with your own key. We also rely on the PDPA's legitimate interests exception for security and preventing abuse, such as rate limiting by IP address.
EU and UK (GDPR), where it applies. We rely on:
- contract, to provide the free tier you signed up for;
- legitimate interests, for security, preventing abuse, product metrics from usage counts, and website analytics;
- consent, where the law requires it.
Who we share it with
We share data only with the services that run our products, and only what each one needs:
- Luminal and its backup providers (Fireworks AI, Z.AI and DeepSeek) receive your free-tier requests (see above).
- Cloudflare hosts the free tier and both websites, provides analytics for both websites, and delivers contact-form emails.
- GitHub handles sign-in.
- X serves the posts embedded in some blog posts.
We also disclose data when the law requires it. These providers operate around the world, so your data may be processed outside Singapore, including in the United States and, when Luminal routes a request to DeepSeek, in China.
How long we keep it
- Your free-tier account, request records, session events and daily totals: nothing deletes these automatically. We keep them while the free tier runs, until you ask us to delete them.
- Sign-in sessions: an access token works for 1 hour and isn't stored. Refresh-token hashes are deleted when you sign out, and otherwise within 30 days of expiring or being replaced.
- Sign-in codes: they last 10 minutes and are deleted after they expire.
- Server keys: until you or we revoke them.
- Rate-limit counters with IP addresses: nothing deletes these automatically yet. We delete them on request.
- Cloudflare request logs: for the period Cloudflare sets.
- Model providers: Luminal keeps samples and failed requests for 7 days and flagged conversations for up to 90 days. Its backup providers keep data under their own policies (see above).
- Website analytics: Cloudflare Web Analytics keeps page-view counts for the period Cloudflare sets.
- Contact-form emails and emails you send us: as long as we need them to reply and follow up.
Your rights
You can ask us to:
- give you a copy of the personal data we hold about you;
- correct it;
- delete it, which closes your free-tier account;
- stop using it, or withdraw your consent.
Write to contact@directionallylocal.com. We may ask you to confirm that the GitHub account is yours. We reply within 30 days. Deleting your account removes your account record, request records and session events. Totals that can't be linked to you, such as weekly spend for the whole service, stay. Signing out ends that sign-in session at once.
Where the GDPR applies, you can also object to processing, ask us to restrict it, and ask for your data in a portable format. You can complain to your data protection authority. In Singapore, that is the Personal Data Protection Commission.
Children
Our products are not for anyone under 16. If you think someone under 16 has signed up for the free tier, write to us and we'll delete the account.
Security
We store tokens, keys and invite codes only as hashes. Sign-in cookies are HttpOnly and Secure, and all connections use HTTPS. No system is perfectly secure. If something goes wrong, we'll tell the people affected as the law requires.
Changes
When we change this policy, we post the new version here with a new date. If the free tier starts collecting something new, we'll update the notice on the sign-in page before we collect it.
Contact
Intel Deployed Pte. Ltd. (Directionally Local), Singapore. contact@directionallylocal.com. The same address reaches our data protection officer.