Aripa User Docs

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 onboard

Environment Variables

VariableDescription
TOKENDiscord bot token. Required to run the bot.
PREFIXText command prefix. Defaults to -.
LOG_LEVELLogging level. Defaults to info.
DATABASE_PATHSQLite database path. Defaults to aripa.sqlite.
CONFIG_PATHRuntime config path. Defaults to config.json.
OPENAI_API_KEYUsed by OpenAI models unless a provider-specific apiKeyEnv is configured.
OPENROUTER_API_KEYUsed by OpenRouter models unless providers.openrouter.apiKeyEnv is configured.
AI_GATEWAY_API_KEYUsed by Vercel AI Gateway unless providers.gateway.apiKeyEnv is configured.
GOOGLE_GENERATIVE_AI_API_KEYUsed by Gemini web search unless providers.google.apiKeyEnv is configured.
ARIPA_UPDATE_GITHUB_REPOTemporarily overrides updates.githubRepo for bun run update.
GITHUB_TOKENOptional token for GitHub release API requests during updates.
ARIPA_RELEASE_PUBLIC_KEY_PEMRelease verification public key for custom update sources.
ARIPA_RELEASE_PUBLIC_KEY_PEM_B64Base64 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

FieldDescription
nameBot instance name used by runtime prompts and display text.
stylePromptAgent response style, such as match, friendly, playful, concise, or formal.
allowlistedServerIdsDiscord server IDs where this bot is allowed to operate. At least one server ID is required when using onboarding.
agentRateLimitMessagesPerMinutePer-user agent mention limit. Use null to disable.
agentTimeoutMsMaximum time, in milliseconds, for an agent response before timing out. Defaults to 60000.
agentMaxConcurrentRequestsGlobal maximum number of concurrent agent requests. Defaults to 4.
agentMaxConcurrentRequestsPerGuildMaximum number of concurrent agent requests per Discord server. Defaults to 2.
logPrivacyRedacts agent tool inputs and outputs from logs when true. Defaults to true.
models.agentModel used for agent responses.
models.summarizerModel used to summarize long context for agent tooling.
models.webGemini web-search model configuration. Set enabled to false to disable web search.
providersOptional provider overrides such as baseURL and apiKeyEnv.
updatesRelease updater configuration used by bun run update.

Models

models.agent and models.summarizer support these providers:

  • openai
  • openrouter
  • gateway
  • ollama
  • lmstudio

models.web always uses Google Gemini. The provider value is normalized to google.

Reasoning effort may be one of:

  • minimal
  • low
  • medium
  • high

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:

FieldDescription
baseURLOptional custom API base URL. Useful for local or compatible providers.
apiKeyEnvOptional 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"
  }
}
FieldDescription
enabledEnables or disables bun run update. Defaults to true.
githubRepoGitHub repository to read published releases from, in owner/repo format. Defaults to aripabot/aripa.
releasePublicKeyPemOptional PEM public key used to verify releases from a custom update source.
releasePublicKeyPemBase64Optional 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.

On this page