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.3.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.3-py3-none-any.whl (54.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: neruva_control-0.3.3.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.3.tar.gz
Algorithm Hash digest
SHA256 ff02486c7aef44d047b19a57a3f47e718579ba2fe86c2828b6366ab71a7e37d2
MD5 113c9617e1c0c8c8dfef870ef2d203ab
BLAKE2b-256 20c337b40b5719db64824c63a6934f6c6b47a683a424858857107818996357ef

See more details on using hashes here.

File details

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

File metadata

  • Download URL: neruva_control-0.3.3-py3-none-any.whl
  • Upload date:
  • Size: 54.4 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6167f13b5b440cb21cd6456cfc2bdadb66d828bf9bfc98e0b3b16708cb40cc90
MD5 17d03f0c664eb8bda94ce070bbc71b4f
BLAKE2b-256 9981efa623549f077ab4c056689ae5b7fb7c1efe2d50526c8090acd21771b222

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