This is the minimal working setup for running Myria locally.

Prerequisites

  • PostgreSQL running locally
  • an OpenRouter API key
  • Go installed

1. Create a Config File

Create myria.json:

{
  "service": {
    "name": "myria",
    "log_level": "info",
    "log_file": "./myria.log"
  },
  "mcp": {
    "transport": "stdio",
    "network": {
      "enabled": false,
      "listen_addr": ""
    }
  },
  "postgres": {
    "dsn": "postgres://myria:secret@127.0.0.1:5432/myria_test?sslmode=disable",
    "schema": "myria",
    "max_open_conns": 20,
    "max_idle_conns": 5,
    "migrate_on_start": false
  },
  "llm": {
    "provider": "openrouter",
    "request_template_path": "./config/openrouter-llm.template.json",
    "timeout": "30s",
    "max_tool_rounds": 8,
    "temperature": 1.0,
    "top_p": 0.95,
    "structured_tool_calling_required": true
  },
  "builder": {
    "inactivity_timeout": "30s",
    "max_unindexed_events": 100,
    "auto_publish": true,
    "allow_manual_trigger": true
  }
}

2. Create an OpenRouter Request Template

Create config/openrouter-llm.template.json:

{
  "model": "nvidia/nemotron-3-super-120b-a12b:free",
  "provider": {
    "sort": "throughput"
  },
  "temperature": 1.0,
  "top_p": 0.95,
  "usage": {
    "include": true
  },
  "headers": {
    "Authorization": "Bearer YOUR_OPENROUTER_API_KEY",
    "HTTP-Referer": "http://localhost",
    "X-Title": "myria"
  }
}

Myria injects messages and tool schemas at runtime, so the template only needs the stable request defaults.

3. Run Migrations

go run ./cmd/myria -config ./myria.json -cmd migrate

4. Start the MCP Server

go run ./cmd/myria -config ./myria.json -cmd serve

Myria serves MCP over stdio in v1.

5. Run a Manual Build

go run ./cmd/myria -config ./myria.json -cmd build

6. Run Tests

go test -timeout 5m ./...

For full configuration details, see configuration.md.