Skip to main content

Configuration

NeoAgent keeps deployment secrets on the server. The default config file is ~/.neoagent/.env; run neoagent setup to regenerate it interactively. You can move the runtime root by setting NEOAGENT_HOME.

AI provider credentials, OAuth client secrets, and deployment controls are not configured through the public web client. The Flutter UI can select providers and models, but the secrets stay in server-side environment variables or in the local NeoAgent database where the app explicitly stores channel settings.

Core Variables

VariableDefaultDescription
PORT3333HTTP port for the NeoAgent server.
PUBLIC_URLoptionalPublic base URL used for OAuth callbacks and external links.
SESSION_SECRETrequiredRandom string for session signing. Generate one with openssl rand -hex 32.
NODE_ENVproductionSet to development to enable verbose logs.
SECURE_COOKIESfalseSet true when NeoAgent is behind a TLS-terminating proxy.
TRUST_PROXYinferred from PUBLIC_URL/SECURE_COOKIESSet true when NeoAgent runs behind Nginx, Caddy, Cloudflare, Fly, or another reverse proxy that sends X-Forwarded-* headers.
ALLOWED_ORIGINSnoneComma-separated CORS origins, for example https://example.com.
NEOAGENT_DEPLOYMENT_MODEself_hostedself_hosted enables in-app update controls; managed hides operator-only controls for SaaS deployments.
NEOAGENT_RELEASE_CHANNELstableRelease track used by the self-hosted updater.

Service Email

Service email is optional. When NEOAGENT_EMAIL_FROM and NEOAGENT_EMAIL_SMTP_HOST are set, NeoAgent uses SMTP for account security flows: signup confirmation, password reset, unusual login notifications, password change notifications, and email change notifications. Confirmation and reset links use the same PUBLIC_URL base as the other server-generated links.

This mailbox is only for the NeoAgent server. The agent cannot read, search, or send from it, and it is not exposed as a Gmail, Outlook, or messaging integration account. Configure Gmail/Outlook tools separately under official integrations if you want the agent to work with a mailbox.

VariableDefaultDescription
NEOAGENT_EMAIL_REQUIRE_SIGNUP_CONFIRMATIONtrue when enabledRequires new signup email confirmation before sign-in.
NEOAGENT_EMAIL_REQUIRE_EMAIL_CHANGE_CONFIRMATIONtrue when enabledRequires account email changes to be confirmed by the new address.
NEOAGENT_EMAIL_NOTIFY_UNUSUAL_LOGINtrueSends a security notice when a login uses a new device or network pattern.
NEOAGENT_EMAIL_NOTIFY_ACCOUNT_CHANGEStrueSends notices for password and email changes.
NEOAGENT_EMAIL_BRAND_NAMENeoAgentDisplay name used by service email templates.
NEOAGENT_EMAIL_SUPPORT_URLoptionalOptional operator support URL reserved for service email templates.
NEOAGENT_EMAIL_TOKEN_TTL_HOURS24Confirmation link lifetime.
NEOAGENT_EMAIL_FROMrequired when enabledSender header, for example NeoAgent <no-reply@example.com>.
NEOAGENT_EMAIL_REPLY_TOoptionalReply-To header.
NEOAGENT_EMAIL_SMTP_HOSTrequired when enabledSMTP hostname.
NEOAGENT_EMAIL_SMTP_PORT587SMTP port.
NEOAGENT_EMAIL_SMTP_SECUREtrue on port 465Use implicit TLS.
NEOAGENT_EMAIL_SMTP_REQUIRE_TLStrue unless implicit TLSRequire STARTTLS for non-implicit-TLS SMTP.
NEOAGENT_EMAIL_SMTP_REJECT_UNAUTHORIZEDtrueReject invalid TLS certificates. Keep enabled in production.
NEOAGENT_EMAIL_SMTP_USERoptionalSMTP username.
NEOAGENT_EMAIL_SMTP_PASSoptionalSMTP password or app password.

AI Providers

At least one hosted-provider API key is required unless you only use local Ollama. The active provider and model routing are selected in the app, but credentials are read from server-side config.

VariableProvider
ANTHROPIC_API_KEYClaude (Anthropic)
OPENAI_API_KEYGPT and Whisper (OpenAI)
XAI_API_KEYGrok (xAI)
XAI_BASE_URLOptional xAI-compatible base URL override
GOOGLE_AI_KEYGemini (Google)
MINIMAX_API_KEYMiniMax Code, including MiniMax-M2.7
BRAVE_SEARCH_API_KEYBrave Search API for the native web_search tool
OPENAI_BASE_URLOptional OpenAI-compatible base URL override
ANTHROPIC_BASE_URLOptional Anthropic-compatible base URL override
DEEPGRAM_API_KEYRecordings transcription with Deepgram
DEEPGRAM_BASE_URLOptional Deepgram API base URL override
DEEPGRAM_MODELDeepgram speech model override, defaults to nova-3
DEEPGRAM_LANGUAGEDeepgram language override, defaults to multi
OLLAMA_URLLocal Ollama server, usually http://localhost:11434

Recording insight generation is controlled in app AI settings with auto_recording_insights. It uses the configured AI providers after Deepgram transcription has produced transcript text.

Official Integrations

Official integrations use OAuth or provider-native account linking and expose structured tools to the agent. The built-in registry currently covers Google Workspace, Notion, Microsoft 365, Slack, Figma, and personal WhatsApp.

All OAuth callbacks default to PUBLIC_URL + /api/integrations/oauth/callback unless you set a provider-specific redirect URI.

VariableDescription
GOOGLE_OAUTH_CLIENT_IDGoogle Workspace OAuth client ID
GOOGLE_OAUTH_CLIENT_SECRETGoogle Workspace OAuth client secret
GOOGLE_OAUTH_REDIRECT_URIOptional Google Workspace OAuth callback URL
NOTION_OAUTH_CLIENT_IDNotion OAuth client ID
NOTION_OAUTH_CLIENT_SECRETNotion OAuth client secret
NOTION_OAUTH_REDIRECT_URIOptional Notion OAuth callback URL
MICROSOFT_OAUTH_CLIENT_IDMicrosoft 365 OAuth client ID
MICROSOFT_OAUTH_CLIENT_SECRETMicrosoft 365 OAuth client secret
MICROSOFT_OAUTH_REDIRECT_URIOptional Microsoft 365 OAuth callback URL
MICROSOFT_OAUTH_TENANT_IDOptional Entra tenant selector, defaults to common
SLACK_OAUTH_CLIENT_IDSlack OAuth client ID
SLACK_OAUTH_CLIENT_SECRETSlack OAuth client secret
SLACK_OAUTH_REDIRECT_URIOptional Slack OAuth callback URL
FIGMA_OAUTH_CLIENT_IDFigma OAuth client ID
FIGMA_OAUTH_CLIENT_SECRETFigma OAuth client secret
FIGMA_OAUTH_REDIRECT_URIOptional Figma OAuth callback URL

Messaging

Messaging platform credentials are stored through the Flutter app messaging tab, not in .env. This includes Telegram, Discord, Slack, Google Chat, Microsoft Teams, Matrix, Signal, iMessage/BlueBubbles, IRC, Twitch, LINE, Mattermost, and the configurable webhook bridges. Use the app to set platform tokens, webhook URLs, inbound secrets, polling options, and access lists.

Generic inbound messaging callbacks use:

PUBLIC_URL + /api/messaging/webhook/:platform

Telnyx webhook verification is configured through the environment.

VariableDescription
TELNYX_WEBHOOK_TOKENTelnyx webhook signature verification token

Runtime Isolation

Runtime profile and backend selection are stored in user settings, not normally in .env. The main profiles are trusted-host and secure-vm. They control whether CLI, browser, and Android tools run on the host or through the local VM backend.

Production policy can require the VM backend. In that case, set a strong NEOAGENT_VM_GUEST_TOKEN of at least 32 characters and avoid placeholder values.

The app exposes two browser backend choices: Cloud and Chrome extension. Cloud uses the current deployment policy, which means host browser control for trusted private installs and VM browser control for isolated production installs. Chrome extension uses the paired extension connection instead of the server-local Puppeteer browser. To install only the extension on a remote machine, open NeoAgent, download /api/browser-extension/download, unzip it, load the folder through chrome://extensions with Developer mode enabled, then pair after logging in to NeoAgent. Unpacked Chrome extensions cannot replace themselves automatically; use the extension popup's update check to compare against the server bundle, then download and reload the latest ZIP when needed.

Secrets Guidance

Treat SESSION_SECRET, provider API keys, OAuth client secrets, service email SMTP credentials, messaging credentials, and Telnyx tokens as sensitive. Do not commit them, print them in logs, or expose them in client-side code. Store them in server-side environment variables or a secrets manager, restrict access to operators who need them, and rotate them immediately if you suspect exposure.

Runtime Paths

PathPurpose
~/.neoagent/.envServer config and deployment secrets
~/.neoagent/data/Database, sessions, update status, and logs
~/.neoagent/agent-data/Skills, memory, and daily data files

Minimal .env Example

PORT=3333
SESSION_SECRET=change-me-to-something-random
ANTHROPIC_API_KEY=sk-ant-...