The apps.
Specialised agents on a shared runtime.

At the practical layer, PNP Compute behaves like an OS. Agents are highly specialised apps with their own runtimes — but they all share neuros, memory, profiles, and the brain. Switch between them in chat, voice, or the dropdown.

Five agents. One runtime.

Each agent owns a router, planner, replier, and profile. They share the neuro library — Upwork's poc_builder can call OpenCode's code_file_diff, and NL Dev's nl_compile is just another neuro to the others.

Neuro
/// Core Runtime

Neuro

The general-purpose core agent. Reasons about intent, plans tasks natively via DAGs, and routes execution. Default agent in the Neuro HQ agency. Profile: general.

NL Dev
/// NeuroLang

NL Dev

Authors NeuroLang flows in natural language. Wraps NeuroLang's compile_source / propose_plan / decompile_summary through seven nl_* neuros. Profile: neurolang_dev.

OpenClaw
/// Browser App

OpenClaw

The browser operator app. Connects to a local gateway to physically browse the web, interacting with DOM elements and managing automated workflows. Member of the Web Agency.

OpenCode
/// Developer App

OpenCode

The developer's companion. Reads entire repositories natively, generates complex code diffs, patches systems, runs deep technical analysis as a background task. code_* neuro family.

NeuroUpwork
/// Workflow App

NeuroUpwork

The workflow application. Hunts job listings, assigns numerical and entropy-based fit scores, generates precise proposals and proof-of-concept plans. Member of the Upwork Agency.

Describe a flow. Get a runnable neuro.

Tell nl_dev what you want — "fetch arxiv papers and email me a summary every morning" — and the agent compiles your prompt into a typed NeuroLang neuro, saves it, and runs it.

nl_planner
Routes the user's intent through the NL Dev pipeline.
nl_propose
Wraps NeuroLang's propose_plan — drafts the flow.
nl_compile
Wraps compile_source — produces typed Python.
nl_save
Persists to ~/.neurolang/neuros/.
nl_run
Executes the compiled flow with given args.
nl_summary
Wraps decompile_summary — natural-language back.
nl_reply
Surfaces results in conversational form.
Compiled flows land in ~/.neurolang/neuros/. They are full neuros — discoverable by other agents, reusable across projects, persistent.

Author neuros as graph blocks.

A graph-first coding interface where neuros are inspected, composed, and edited as reusable blocks. LEGO for coding.

Graph-native visualization

Built on @react-three/fiber. Nodes coloured by namespace — nl: cyan, skill: green, memory: purple, agent: orange. Drag to rearrange.

Source-aware editing

Each neuro surfaces its conf.json, code.py, and prompt.txt in tabs. Edit, validate, save. Changes hot-load on the next call.

Kind-based modularity

Filter the graph by kind: skill, memory, model, context, prompt, agent, code. See your toolbox at a glance.

Safe save pipeline

Validation → snapshot → save → reload registry. If validation fails, the previous version stays live. No broken state.

# Boot the IDE backend
python3 neurosdk/scripts/ide_server.py        # port 8000

# Then in the web UI
cd neuro_web
NEXT_PUBLIC_IDE_URL=http://127.0.0.1:8000 npm run dev
# open http://localhost:3000/graph

Speak. Listen. Continue.

Voice runs as a system service over LiveKit. Sub-second latency end-to-end. The voice agent shares the same brain — it's just another surface.

Hold to dictate

The mobile app's microphone button transcribes in real time as you speak. The transcription populates the input field. Release to send.

Always-listening voice agent

Run run_voice_agent.sh as a systemd service. Silero VAD detects speech; Sarvam streaming STT transcribes; brain reasons; ElevenLabs TTS replies. All over a single LiveKit connection.

Microphone ↓ Silero VAD (voice activity) ↓ Sarvam Streaming STT (transcription) ↓ Brain (LLM + skills) ↓ ElevenLabs TTS (synthesis) ↓ Speaker Single LiveKit transport. Sub-second round trip.

Android client, full control.

Built with Jetpack Compose. Chat, voice, agent switching, full remote desktop, multi-monitor switching. Pinch to zoom up to 10× on the streamed desktop.

Agent selector

Tap the agent pill in the header to switch between Neuro, NL Dev, OpenClaw, OpenCode, NeuroUpwork. Each agent has its own conversation context.

Remote desktop mode

Fullscreen landscape. Desktop screen streamed in real time via WebRTC. Right sidebar: mic, mouse mode, monitor switch, exit. Left toolbar: voice typing, keyboard, scroll/click/focus modes.

Touch gestures

Single-finger drag → mouse. Tap → click. Double tap → double click. Two-finger drag → scroll. Two-finger tap → right click. Pinch → zoom.

Voice typing

Hold the microphone in any text field to dictate. Real-time transcription. Works across all chat surfaces.

cd neuro_mobile
./gradlew assembleDebug
# Install the APK on your device
# Settings → server URL → http://<your-machine-ip>:7000

Workspaces with their own dashboards.

An agency is a team of agents working toward a shared mission, with its own colour, emoji, set of agents, and default project. Three ship today.

🧠 Neuro HQ

General workspace

Chat, code, automate. Default agency. Houses neuro, opencode, and nl_dev. Default agent: neuro. Default project: default.

💼 Upwork Agency

Job hunting + freelance

Job hunting, proposals, freelance automation. Houses neuro and neuroupwork. Crawls listings, scores fit, drafts proposals, builds proofs-of-concept.

🦀 Web Agency

Browser ops + scraping

Web automation, scraping, browser tasks. Houses neuro and openclaw. Default agent: openclaw.

More agencies — Documentation, Presentations, Claude Code Manager — are documented in the architecture spec. Adding a new agency is a config edit: pick a name, set agents, define default project. The runtime takes it from there.

→ Architecture GitHub · coming soon