Skip to content
nerva docs v0.2.1

nerva dev & nerva test

nerva dev and nerva test are local development helpers. They do not start a server — Nerva is a library, and your HTTP layer belongs to your framework.

nerva dev

Start an interactive REPL that loads your nerva.yaml, discovers agents, tools, and middleware, and lets you send messages to your orchestrator from the terminal.

Terminal window
nerva dev

What it does:

  • Loads nerva.yaml and registers all components
  • Watches agents/, tools/, and middleware/ for file changes and auto-reloads
  • Opens an interactive prompt where you type messages and see agent responses
  • Records traces for every request and displays them inline

Trace output

Every request produces a trace tree printed below the response:

[req_abc] handle "What's the weather in Berlin?" (52ms)
+-- [req_abc.1] router.classify (1ms)
+-- [req_abc.2] runtime.invoke weather_agent (48ms)
| +-- [req_abc.2.1] tools.call get_weather (45ms)
+-- [req_abc.3] responder.format (1ms)

Color coding: agents (purple), tools (blue), middleware (gold), router (orange), system (cyan).

nerva test

Run your project’s test suite with automatic language detection.

Terminal window
nerva test [--coverage]

The test command reads nerva.yaml to detect the project language and runs the appropriate runner:

LanguageRunnerCommand
Pythonpytestpython -m pytest
TypeScriptvitestnpx vitest run

Add --coverage to enable coverage reporting.

Examples

Terminal window
# Interactive development REPL
nerva dev
# Run tests
nerva test
# Run tests with coverage
nerva test --coverage