Skip to content

Your code stays
your code.

Local-first execution. No telemetry. Signed releases on every platform. The details below are the same ones we hand to enterprise procurement and security teams.

Last reviewed: May 17, 2026 · NetTechnologys s.r.o.

Security & privacy

Your code stays your code.

127.0.0.1

Local execution

codeindexer runs entirely on your machine. Indexing, embedding, search, audit — everything happens on localhost. The server binds to 127.0.0.1 by default. No source code, no file contents, and no search queries are sent to our servers, ever.

1 req / day

What we do see

Pro and Enterprise licenses make one HTTPS call per day to verify the license. That request contains a license ID and an anonymous machine fingerprint — nothing else. The exact payload is auditable in our open documentation. If the license server is unreachable, the binary continues normally for a 14-day grace window.

0600

Hardening

HTTP transport supports bearer-token authentication, configurable CORS allow-list, and same-origin protection out of the box. Stdio transport is process-level isolated. Index data lives in your user data directory with restricted permissions. License files are stored with 0600 mode on Unix.

GDPR-compatible no personal data leaves your machine
EU AI Act ready fully transparent, auditable, local processing
Optional audit logs append-only log of every tool invocation, per project
No training on your code we don't have it; we can't train on it
Open MCP standard no vendor lock-in; swap us out anytime
01 · Data residency

Where your code lives, and what never leaves.

codeindexer runs entirely on localhost. The server binds to 127.0.0.1 by default. Indexing, embedding, search, and audit all happen on your machine — there is no cloud control plane to leak into.

Stored on your machine: the index (vectors + symbol tables + call graph), per-project memory cards, license file (mode 0600), and an append-only audit log if you opt in.

Never stored anywhere: raw source contents, search queries, embeddings (other than locally), or your prompts to AI clients. We don't have a database for it. We don't have a bucket for it.

On disk

Index, memory cards, license, optional audit log

On wire

License heartbeat (Pro/Enterprise) — 1 req/day · ~200 bytes

In RAM

Working set during indexing — 1–2 GB peak

Off-host

Nothing. By default the server is unreachable from LAN.

02 · Telemetry

No analytics. No crash reports. No "anonymous usage data."

codeindexer is not instrumented with analytics. We don't ship Sentry. We don't ship Mixpanel. We don't ship a crash-reporter that "phones home" — opt-in or otherwise. The Free tier makes zero network calls.

Pro and Enterprise make exactly one HTTPS request per day to verify the license. That request contains a license ID and an anonymous machine fingerprint (hash of stable hardware IDs) — and nothing else. The full payload is documented and reproducible from the source.

If the license server is unreachable, the binary continues to operate normally for a 14-day grace window from the last successful heartbeat — short network outages and travel don't break anything.

03 · Release integrity

Every binary signed — three platforms, three verifiable signatures.

macOS builds are signed with our Apple Developer ID and notarized by Apple. Gatekeeper verifies the signature automatically on first launch — no extra steps for you.

Windows builds are signed with our Authenticode certificate. SmartScreen reads the signature; the Publisher field shows NetTechnologys s.r.o.

Linux builds are signed with a minisign Ed25519 key — modern, single-binary verifier, no GPG keyring overhead. Pin the public key once and verify every future release:

RWTdWz65CdhG3MdHuAPjoP1wc+EeBAhKoa8b/eMq+kEaHaLQPmF4FO0g

Verify a Linux release in one command:

bash
# Install minisign:
#   Debian/Ubuntu: apt install minisign
#   Fedora:        dnf install minisign
#   macOS:         brew install minisign

minisign -Vm codeindexer-X.X.X-linux-amd64 \
         -P RWTdWz65CdhG3MdHuAPjoP1wc+EeBAhKoa8b/eMq+kEaHaLQPmF4FO0g
04 · License signing

Offline-verifiable, tamper-evident licenses.

Pro and Enterprise licenses are issued as signed JSON files. The binary carries the issuer's public key embedded at build time; license validation is a pure local cryptographic check.

Implementation reference: App\Services\LicenseSigningService handles signing on the issuer side; the binary performs the corresponding verification before unlocking gated tools. Tampering with the license file invalidates the signature; the binary falls back to the Free tier.

The daily heartbeat is a freshness check, not the validation. A license remains usable for a 14-day grace window without network access.

05 · Supply chain

Dependency hygiene we'd accept from a vendor ourselves.

Every dependency is pinned at the lockfile level. We track CVEs on every push via cargo audit, cargo deny, and npm audit on the frontend. A failing audit blocks the release pipeline.

Embedded models (embedding + reranker + optional LLM) are pinned by hash. We don't auto-update model weights at runtime — every version bump is deliberate, documented in the release notes, and signed with the rest of the release.

Update policy: security patches within 7 days of public disclosure; routine dependency bumps quarterly; major version bumps documented in the breaking-change calendar.

06 · Responsible disclosure

Found something? Tell us first.

Primary channel — GitHub Security Advisories. Open a private advisory at github.com/Nettechnologys/codeindexer/security/advisories/new. Private thread with us, automatic CVE assignment when the fix is ready, coordinated public disclosure on a timeline that suits both sides.

Email fallback. Plain email to [email protected] is fine for non-sensitive triage. If you need an encrypted channel for exploit details before disclosure, request a PGP key in your initial email and we will share one.

We acknowledge within 48 hours, coordinate on embargo timing, and credit reporters in the advisory unless you'd rather stay anonymous. We do not run a paid bounty program. Enterprise customers receive advisories under embargo ahead of public disclosure when the issue warrants it.

Safe harbour

Good-faith security research is welcome. We will not pursue legal action or report to law enforcement against researchers who follow this disclosure process — provided they avoid privacy violations, service degradation, and access to data that is not their own. Full language: Acceptable Use Policy.

07 · Compliance

What we can hand procurement, in writing.

  • GDPR-compatible No personal data leaves your machine. Standard DPA available on Enterprise.
  • EU AI Act-ready Fully transparent, auditable, local processing. Model cards on request.
  • No training on your code We don't have your code. We can't train on it. We don't.
  • Open MCP standard No vendor lock-in. Swap us out anytime; your indexes stay yours.
  • Audit logs Optional append-only log of every tool invocation, per project.

Procurement-ready documents your legal team can request directly: DPA · Sub-processors · Privacy Policy · Terms.

We use a couple of small first-party cookies to keep the site working and remember your theme preference. No tracking, no ads. Learn more.