Security & privacy

Neural Junkie is a local-first desktop tool, not a multi-tenant cloud service. The hub runs on your machine (127.0.0.1:18765 by default). Your models, chat history, repo indexes, and approvals stay under your control unless you explicitly connect cloud providers or Slack.

Privacy by default

Human control

Built-in protections

ConcernMitigation
Cross-site calls to the hubLoopback bind, restricted CORS, sensitive routes need loopback or hub token
Path traversalpathutil.WithinRoot, resolved hub data paths
XSS in chat markdownDOMPurify; unsafe style attributes disallowed
Secrets on diskAES-GCM for config tokens and desktop credentials (machine-bound key)
API abusePer-IP/session rate limits (configurable)
Hub on LANOpt-in only — requires NEURAL_JUNKIE_HUB_TOKEN

Shared or production machines

For laptops used by multiple people or servers exposed beyond localhost:

  1. Set NEURAL_JUNKIE_HUB_TOKEN and NEURAL_JUNKIE_CONFIG_KEY to random secrets.
  2. Enable NEURAL_JUNKIE_AUTH_REQUIRED=1 so mutations require a session.
  3. Do not use NEURAL_JUNKIE_LISTEN_ALL or wildcard CORS without TLS and proxy auth.
  4. Review MCP tools (shell, kubectl, docker) — they run as your OS user.

Desktop Settings → Security surfaces hub token, strict auth, and listen-all status. Settings → Connection (beta.5) centralizes hub URL, server/network, automation, and connector tabs without hand-editing JSON.

Lab & regulated environments

Life sciences and customer packs can add viewers and QC tools that read local scan data. Data stays on the workstation unless you configure cloud models or external integrations (Slack, Jira, AWS read-only MCP, Hugging Face for folding). Customer-specific packs are installed via sideload zip — not published to the public store.