Configuration Reference
Complete reference for all SystemPrompt configuration options
On this page
Complete reference for all SystemPrompt configuration files and options.
Configuration Files
| File | Purpose |
|---|---|
~/.config/systemprompt/profiles/*.yaml |
Profile configuration |
~/.config/systemprompt/secrets.yaml |
Encrypted secrets |
services/config/*.yaml |
Service configuration |
services/agents/*.yaml |
Agent definitions |
services/mcp/*.yaml |
MCP server definitions |
services/web/config.yaml |
Web configuration |
services/content/config.yaml |
Content sources |
Profile Configuration
Location: ~/.config/systemprompt/profiles/<name>.yaml
name: local
tenant_id: abc123
database:
type: postgres # postgres, sqlite
host: localhost
port: 5432
database: systemprompt
username: systemprompt
pool:
max_connections: 10 # Connection pool size
min_connections: 1
idle_timeout: 600 # Seconds
api:
host: 0.0.0.0
port: 3000
base_url: http://localhost:3000
cors:
allowed_origins:
- http://localhost:3000
allowed_methods:
- GET
- POST
- PUT
- DELETE
logging:
level: info # trace, debug, info, warn, error
format: pretty # pretty, json
file: null # Optional log file path
features:
mcp: true # Enable MCP servers
agents: true # Enable agents
scheduler: true # Enable job scheduler
analytics: true # Enable analytics
Service Configuration
AI Providers
Location: services/config/ai.yaml
providers:
anthropic:
model: claude-sonnet-4-20250514
max_tokens: 4096
temperature: 0.7
# API key loaded from secrets
openai:
model: gpt-4o
max_tokens: 4096
temperature: 0.7
gemini:
model: gemini-pro
max_tokens: 4096
default_provider: anthropic
rate_limits:
requests_per_minute: 60
tokens_per_minute: 100000
Scheduler
Location: services/config/scheduler.yaml
enabled: true
timezone: UTC
defaults:
timeout: 300 # Job timeout in seconds
retries: 3
retry_delay: 60
jobs:
daily_cleanup:
cron: "0 0 * * *" # Daily at midnight
task: "maintenance:cleanup"
enabled: true
timeout: 600
hourly_sync:
cron: "0 * * * *" # Every hour
task: "sync:content"
enabled: true
OAuth
Location: services/config/oauth.yaml
issuer: https://your-domain.com
token_lifetime: 3600 # Access token lifetime (seconds)
refresh_lifetime: 604800 # Refresh token lifetime (seconds)
code_lifetime: 600 # Auth code lifetime (seconds)
clients:
- id: web-app
name: Web Application
secret_hash: null # Public client
redirect_uris:
- http://localhost:3000/callback
- https://your-domain.com/callback
scopes:
- openid
- profile
- chat
grant_types:
- authorization_code
- refresh_token
- id: service-account
name: Service Account
# Secret loaded from secrets
scopes:
- admin
grant_types:
- client_credentials
scopes:
openid:
description: OpenID Connect
profile:
description: User profile
chat:
description: Chat with agents
admin:
description: Administrative access
Agent Configuration
Location: services/agents/<name>.yaml
name: blog
display_name: Blog Assistant
description: Helps create and manage blog content
# A2A Protocol Card
a2a:
version: "1.0"
capabilities:
- chat
- tools
transport:
type: http
endpoint: /api/v1/agents/blog
# Security
security:
oauth:
required: true
scopes:
- chat
- admin
# System prompt
system_prompt: |
You are a helpful blog assistant. Help users create,
edit, and publish blog content.
# Skills assigned to this agent
skills:
- content_writing
- general_assistance
# LLM configuration
llm:
provider: anthropic
model: claude-sonnet-4-20250514
max_tokens: 4096
temperature: 0.7
# MCP servers this agent can access
mcp_servers:
- content-manager
- file-manager
# Runtime configuration
runtime:
enabled: true
auto_start: true
restart_on_failure: true
MCP Server Configuration
Location: services/mcp/<name>.yaml
name: content-manager
display_name: Content Manager
description: Tools for content management
# Binary to run
binary: mcp-content-manager
# Endpoint configuration
endpoint:
path: /api/v1/mcp/content-manager/mcp
transport: streamable-http
# OAuth requirements
oauth:
required: true
scopes:
- admin
# Tool permissions
tools:
create_content:
description: Create new content
oauth:
scopes:
- admin
list_content:
description: List all content
oauth:
scopes:
- chat
# Resource permissions
resources:
content:
description: Access content
oauth:
scopes:
- chat
Web Configuration
Location: services/web/config.yaml
branding:
name: "SystemPrompt"
title: "SystemPrompt - AI Infrastructure"
description: "Production infrastructure for AI agents"
themeColor: "#f79938"
colors:
dark:
primary:
hsl: "hsl(28, 91%, 60%)"
background:
hsl: "hsl(0, 0%, 7%)"
surface:
hsl: "hsl(0, 0%, 10%)"
text:
primary: "hsl(0, 0%, 95%)"
secondary: "hsl(0, 0%, 70%)"
typography:
fontFamily:
heading: "'Inter', sans-serif"
body: "'Inter', sans-serif"
mono: "'SF Mono', monospace"
navigation:
header:
- path: /documentation
label: Docs
- path: /blog
label: Blog
footer:
resources:
- path: /documentation
label: Documentation
- path: /blog
label: Blog
company:
- path: /legal/privacy
label: Privacy
- path: /legal/terms
label: Terms
content:
config_file: services/content/config.yaml
sources:
- blog
- docs
- legal
seo:
site_name: SystemPrompt
locale: en_US
twitter_handle: "@systemprompt"
Content Configuration
Location: services/content/config.yaml
content_sources:
blog:
path: content/blog
source_id: blog
category_id: blog
enabled: true
description: Blog posts
allowed_content_types:
- article
- tutorial
- guide
branding:
name: Blog
description: Technical articles
indexing:
recursive: true
sitemap:
enabled: true
url_pattern: "/blog/{slug}"
priority: 0.8
changefreq: weekly
docs:
path: content/docs
source_id: docs
category_id: documentation
enabled: true
description: Documentation
allowed_content_types:
- guide
- reference
- tutorial
sitemap:
enabled: true
url_pattern: "/documentation/{slug}"
priority: 0.7
categories:
blog:
name: Blog
slug: blog
documentation:
name: Documentation
slug: documentation
Environment Variables
While profiles are preferred, these environment variables are supported:
| Variable | Description |
|---|---|
SYSTEMPROMPT_PROFILE |
Active profile name |
SYSTEMPROMPT_LOG_LEVEL |
Override log level |
DATABASE_URL |
Full database URL |
RUST_LOG |
Rust logging filter |
Secrets
Secrets are stored encrypted at ~/.config/systemprompt/secrets.yaml.
Set secrets via CLI:
systemprompt admin config set-secret database.password "secret"
systemprompt admin config set-secret anthropic.api_key "sk-..."
systemprompt admin config set-secret openai.api_key "sk-..."
Available secret paths:
| Path | Description |
|---|---|
database.password |
Database password |
anthropic.api_key |
Anthropic API key |
openai.api_key |
OpenAI API key |
google.api_key |
Google API key |
oauth.client_secret.* |
OAuth client secrets |