-
Notifications
You must be signed in to change notification settings - Fork 19
Expand file tree
/
Copy pathconfig.example.yaml
More file actions
121 lines (109 loc) · 5.18 KB
/
Copy pathconfig.example.yaml
File metadata and controls
121 lines (109 loc) · 5.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# Nerve — Personal AI Assistant Configuration
# Copy to config.yaml and customize. Secrets go in config.local.yaml (gitignored).
# Core
workspace: ~/nerve-workspace # Path to workspace with SOUL.md, MEMORY.md, etc.
timezone: America/New_York
# Provider — how Nerve connects to Claude (default: anthropic)
# provider:
# type: bedrock # "anthropic" or "bedrock"
# aws_region: us-east-1 # AWS region for Bedrock
# # aws_profile: "" # Optional: AWS SSO profile name
# Agent
agent:
model: claude-opus-4-8 # Primary model for conversations
# Use claude-fable-5 for Anthropic's most capable (Mythos-class) model.
# Note: ~2x the cost of Opus 4.8 ($10/$50 per MTok in/out).
cron_model: claude-sonnet-4-6 # Cheaper model for cron jobs
title_model: claude-haiku-4-5-20251001 # Session title generation
max_turns: 50 # Max agentic turns per request
max_concurrent: 4 # Max concurrent agent sessions
# First-prompt rewrite — the web UI can refine the opening message of a
# new chat with a fast model, preview it, and send only after approval.
prompt_rewrite:
enabled: true # Master switch (per-user toggle is in the UI)
model: "" # Empty → falls back to agent.model (chat model)
max_tokens: 1024
timeout_seconds: 45
# For Bedrock, use model IDs like:
# model: us.anthropic.claude-opus-4-8
# cron_model: us.anthropic.claude-sonnet-4-6
# title_model: us.anthropic.claude-haiku-4-5-20251001-v1:0
# Gateway
gateway:
host: 0.0.0.0
port: 8900
ssl:
cert: ~/.nerve/certs/cert.pem
key: ~/.nerve/certs/key.pem
# Channels
telegram:
enabled: true
# DM authorization:
# pairing — only users in allowed_users may talk to the bot. New users
# authorize with a one-time code: run `nerve pair` on the
# server, then send the bot `/pair <code>`. Paired IDs are
# persisted to config.local.yaml automatically.
# open — anyone can talk to the bot (dangerous: full agent access).
dm_policy: pairing
# allowed_users: [123456789] # numeric Telegram user IDs (or pair instead)
stream_mode: partial # "partial" (edit messages) or "full" (wait for complete)
# Quiet hours (local timezone)
quiet_start: "02:00"
quiet_end: "12:00"
# Sync sources
sync:
telegram:
enabled: true
monitored_folders: [Work, Friends]
gmail:
enabled: true
accounts: [] # Set in config.local.yaml
schedule: "*/15 * * * *"
github:
enabled: true
schedule: "*/15 * * * *"
# Guardrails — limit which repos reach the inbox (case-insensitive globs).
# allow_repos = allowlist (empty = all); deny_repos takes precedence.
allow_repos: [] # Example: ["ClickHouse/*", "myorg/myrepo"]
deny_repos: []
# Memory (memU)
memory:
chat_model: claude-sonnet-4-6
# embed_model: text-embedding-3-small # Only needed with openai_api_key
# Cron
cron:
system_file: ~/.nerve/cron/system.yaml # Managed by 'nerve init' — system crons
jobs_file: ~/.nerve/cron/jobs.yaml # Your custom crons — never touched by Nerve
# Backup (optional) — scheduled, verified snapshots of Nerve state into a
# single portable bundle (nerve-backup-<host>-<ts>.tar.zst). Off by default.
# Point target_dir at an external mount or a synced directory — the OFF-BOX
# copy is what protects against a disk failure. The SQLite DBs are snapshotted
# with the online-backup API, so bundles are consistent even while Nerve runs.
# Manual use: `nerve backup` / `nerve restore BUNDLE` (no running server needed).
# backup:
# enabled: false
# target_dir: "" # e.g. /mnt/backup/nerve (REQUIRED when enabled)
# interval_hours: 24 # scheduled cadence (an hourly tick fires when due)
# retention_count: 7 # keep the newest N bundles; prune older ones
# include_workspace: true # include the workspace BRAIN (*.md, memory/, scripts/, skills/)
# workspace_excludes: [] # extra glob patterns to skip, e.g. ["*.png", "drafts"]
# notify_on_failure: true # high-priority notify if a scheduled backup fails
# notify_on_success: false # low-priority digest line on success
# External MCP server (optional) — expose Nerve's tool registry to
# external MCP clients (Codex, Claude Code, Cursor) over Streamable HTTP.
# Off by default. Authentication reuses the gateway JWT
# (auth.jwt_secret) — present it as `Authorization: Bearer <jwt>` or
# `?token=<jwt>`. Connect a client with the URL "https://<host>:8900/mcp/v1/".
# mcp_endpoint:
# enabled: false
# path: /mcp/v1
# include_hoa: false # Expose hoa_* tools externally (default off)
# Observability (optional) — Langfuse tracing for the agent loop and memU.
# Set keys in config.local.yaml. Without keys, the integration is a no-op.
# See docs/observability.md for setup details.
# langfuse:
# public_key: pk-lf-... # from your Langfuse project (set in config.local.yaml)
# secret_key: sk-lf-... # from your Langfuse project (set in config.local.yaml)
# host: https://cloud.langfuse.com
# # redact_patterns: # optional — strip these regexes from spans
# # - "sk-ant-[A-Za-z0-9_\\-]{20,}"