Skip to main content

Local daemon for Neruva Cockpit -- the web dashboard for agentic AI on your own machine. Two agent modes: Neruva Code (reads/edits files, runs commands, debugs) and Neruva Computer (sees screen, clicks, types, navigates apps). Every session has persistent memory, semantic recall across runs, plan caching that gets cheaper over time, and mid-flight chat-steering. Loopback-only; runs on 127.0.0.1.

Project description

neruva-control

Local daemon for Neruva Cockpit — the web dashboard for agentic AI on your own machine.

Cockpit runs in your browser. This daemon runs on your laptop. Together they let an AI:

  • Neruva Code — read your files, edit them, run commands, debug — autonomously
  • Neruva Computer — see your screen, click, type, navigate apps — like a person would
  • Remember everything across sessions via the Neruva substrate (semantic recall + plan caching)
  • Take mid-flight direction — type a message while the agent is working and it adjusts

All on your machine. Nothing leaves your loopback except (optionally) the substrate writes you opt into.

Install

pip install "neruva-control[agent]"
neruva-control-install

The installer:

  1. Generates an auth token at ~/.config/neruva/control.token (mode 0600 on Unix)
  2. Registers a background service so the daemon starts on login (launchd / systemd-user / Task Scheduler)
  3. Starts the daemon on 127.0.0.1:7331 (loopback only — never exposed to the network)
  4. Prints a one-time link https://neruva.io/cockpit#token=<TOKEN> — open once, browser remembers your machine

The [agent] extra pulls in pyautogui + Pillow for the Neruva Computer screenshot/click executor. Skip it if you only want Neruva Code.

How it works

[browser at neruva.io/cockpit]
       ↕ WebSocket (loopback :7331, token-authed)
[neruva-control daemon]
   ├─ POST /v1/sessions {agent_type: "code"|"computer", initial_task}
   ├─ Routes to:
   │   • Neruva Code     — agentic loop: read/edit files, run bash
   │   • Neruva Computer — agentic loop: screenshot, click, type
   ├─ Streams every step to the browser over WS
   ├─ Accepts mid-flight "chat-steering" input via WS
   └─ Records every event to your Neruva substrate
       ↕ HTTPS (Api-Key auth)
[api.neruva.io substrate]
   ├─ Records (semantic memory, every session)
   ├─ Plan cache (replay successful task templates, ~50% cheaper)
   ├─ Memory enrichment (pre-task: "what did we do before?")
   └─ Cross-session graph RAG

The daemon binds to 127.0.0.1 only. The browser tab at neruva.io/cockpit connects via loopback WebSocket using a one-time token. The token is the only shared secret.

What the agents can do

Mode Tools
Neruva Code read_file, write_file, edit_file, search_files, run_bash, done
Neruva Computer screenshot, click, type, key, scroll, wait, done

Both agents:

  • Receive a memory preamble of past relevant work before each task
  • Check the substrate plan cache before deriving a new plan from scratch
  • Save the completed plan back to the cache for next time
  • Accept mid-flight directives via the Cockpit chat input

Quick start (after install)

  1. Open the link the installer printed (or run neruva-control link to print it again)
  2. In Cockpit, pick a Mode (Neruva Code or Neruva Computer)
  3. Type a task: "Fix the failing test in tests/test_auth.py" or "Open Notepad and draft a haiku about coffee"
  4. Watch it work. Type into the chat at any time to redirect.

Commands

Command What it does
neruva-control-install One-shot install (generates token, registers service, prints link URL)
neruva-control start Run the daemon foreground (used by service)
neruva-control status Show install + daemon health + version
neruva-control link Print the link URL again (re-link or new browser)
neruva-control stop Stop the daemon

Configuration

Drop a .env at ~/.config/neruva/.env (Linux/macOS) or %APPDATA%\neruva\neruva\.env (Windows). The daemon auto-loads it at startup so you never touch your shell profile.

NERUVA_API_KEY=nv_...

Pre-existing shell env vars always take precedence over the .env file. The daemon also looks for ./.env in the cwd as a dev convenience.

Requirements

  • Python ≥3.10
  • [agent] extra: pyautogui + Pillow (skip if Code-only)
  • A Neruva account at neruva.io

Privacy

  • Daemon listens on 127.0.0.1 only — never on a network interface
  • Sessions stream over loopback WebSocket; never leave your machine in transit
  • Substrate writes (records, plan cache) are opt-in and go to your account at api.neruva.io
  • Screenshots for Neruva Computer are sent to the action model for the next click decision and not stored beyond that turn unless you opt into full recording

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

neruva_control-0.3.2.tar.gz (48.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

neruva_control-0.3.2-py3-none-any.whl (54.3 kB view details)

Uploaded Python 3

File details

Details for the file neruva_control-0.3.2.tar.gz.

File metadata

  • Download URL: neruva_control-0.3.2.tar.gz
  • Upload date:
  • Size: 48.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for neruva_control-0.3.2.tar.gz
Algorithm Hash digest
SHA256 f63d308d0501c1edf991fb6a20c4b7245146dfc0b318acf49a38cd9ac05fe59b
MD5 a19ccc7ae0fc57f8d3183e4455489ef3
BLAKE2b-256 2683debd53da4158d423aff3a2fcede92e07a11d145852c9ae22192bff1e33c0

See more details on using hashes here.

File details

Details for the file neruva_control-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: neruva_control-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 54.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for neruva_control-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 50a1ab51f764e3216bd2780a269e4b8e2325e021491ba8f3cc811024e713b908
MD5 beafad62a419ca127b2521cff417d3aa
BLAKE2b-256 c57baad99606a135578c64eac8dbd0c4e9221f0d8fec9c6ed148a14adaaaa0ed

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page