Configuration
Configure Aripa with environment variables and config.json.
Aripa is configured with environment variables and a config.json file. The easiest way to create or update config.json is:
bun run onboardEnvironment Variables
| Variable | Description |
|---|---|
TOKEN | Discord bot token. Required to run the bot. |
PREFIX | Text command prefix. Defaults to -. |
LOG_LEVEL | Logging level. Defaults to info. |
DATABASE_PATH | SQLite database path. Defaults to aripa.sqlite. |
CONFIG_PATH | Runtime config path. Defaults to config.json. |
OPENAI_API_KEY | Used by OpenAI models unless a provider-specific apiKeyEnv is configured. |
OPENROUTER_API_KEY | Used by OpenRouter models unless providers.openrouter.apiKeyEnv is configured. |
AI_GATEWAY_API_KEY | Used by Vercel AI Gateway unless providers.gateway.apiKeyEnv is configured. |
GOOGLE_GENERATIVE_AI_API_KEY | Used by Gemini web search unless providers.google.apiKeyEnv is configured. |
ARIPA_UPDATE_GITHUB_REPO | Temporarily overrides updates.githubRepo for bun run update. |
GITHUB_TOKEN | Optional token for GitHub release API requests during updates. |
ARIPA_RELEASE_PUBLIC_KEY_PEM | Release verification public key for custom update sources. |
ARIPA_RELEASE_PUBLIC_KEY_PEM_B64 | Base64 release verification public key for custom update sources. |
config.json
Example:
{
"name": "Aripa",
"stylePrompt": "match",
"agentRateLimitMessagesPerMinute": 10,
"agentTimeoutMs": 60000,
"agentMaxConcurrentRequests": 4,
"agentMaxConcurrentRequestsPerGuild": 2,
"logPrivacy": true,
"models": {
"agent": {
"provider": "openai",
"model": "gpt-5.5",
"reasoningEffort": "low"
},
"summarizer": {
"provider": "openai",
"model": "gpt-5.4-nano",
"reasoningEffort": "low"
},
"web": {
"enabled": true,
"provider": "google",
"model": "gemini-2.5-flash"
}
},
"providers": {},
"updates": {
"enabled": true,
"githubRepo": "aripabot/aripa"
},
"allowlistedServerIds": [
"123456789012345678"
]
}Runtime Fields
| Field | Description |
|---|---|
name | Bot instance name used by runtime prompts and display text. |
stylePrompt | Agent response style, such as match, friendly, playful, concise, or formal. |
allowlistedServerIds | Discord server IDs where this bot is allowed to operate. At least one server ID is required when using onboarding. |
agentRateLimitMessagesPerMinute | Per-user agent mention limit. Use null to disable. |
agentTimeoutMs | Maximum time, in milliseconds, for an agent response before timing out. Defaults to 60000. |
agentMaxConcurrentRequests | Global maximum number of concurrent agent requests. Defaults to 4. |
agentMaxConcurrentRequestsPerGuild | Maximum number of concurrent agent requests per Discord server. Defaults to 2. |
logPrivacy | Redacts agent tool inputs and outputs from logs when true. Defaults to true. |
models.agent | Model used for agent responses. |
models.summarizer | Model used to summarize long context for agent tooling. |
models.web | Gemini web-search model configuration. Set enabled to false to disable web search. |
providers | Optional provider overrides such as baseURL and apiKeyEnv. |
updates | Release updater configuration used by bun run update. |
Models
models.agent and models.summarizer support these providers:
openaiopenroutergatewayollamalmstudio
models.web always uses Google Gemini. The provider value is normalized to google.
Reasoning effort may be one of:
minimallowmediumhigh
Reasoning effort is currently applied to OpenAI model calls.
Provider Overrides
Use providers to customize API keys or base URLs.
{
"providers": {
"openrouter": {
"apiKeyEnv": "MY_OPENROUTER_KEY"
},
"ollama": {
"baseURL": "http://localhost:11434/v1"
},
"lmstudio": {
"baseURL": "http://localhost:1234/v1"
},
"google": {
"apiKeyEnv": "MY_GEMINI_KEY"
}
}
}Each provider supports:
| Field | Description |
|---|---|
baseURL | Optional custom API base URL. Useful for local or compatible providers. |
apiKeyEnv | Optional environment variable name to read the API key from. |
Unknown provider keys are ignored.
Updates
The updater is configured with the updates block:
{
"updates": {
"enabled": true,
"githubRepo": "aripabot/aripa"
}
}| Field | Description |
|---|---|
enabled | Enables or disables bun run update. Defaults to true. |
githubRepo | GitHub repository to read published releases from, in owner/repo format. Defaults to aripabot/aripa. |
releasePublicKeyPem | Optional PEM public key used to verify releases from a custom update source. |
releasePublicKeyPemBase64 | Optional base64-encoded PEM public key used to verify releases from a custom update source. |
Official Aripa releases use the built-in official release verification key. Forks or custom release repositories should configure their own public key or set ARIPA_RELEASE_PUBLIC_KEY_PEM_B64.
Privacy
Keep logPrivacy set to true when logs leave the host or may be viewed by people who should not see full agent tool inputs and outputs.