Configuration
This page explains the minimum configuration needed to make ClawNeo usable in practice.
Main config file
The primary config file is stored at:
~/.clawneo/clawneo.jsonIf the file does not exist yet, ClawNeo creates it automatically.
Recommended configuration path
The easiest way to configure ClawNeo is:
clawneo configThe interactive config flow lets you manage:
- OpenAI authorization
- Discord bot token
- allowed Discord user IDs
- allowed Discord guild IDs
- model selection
- tool working directory
Minimum setup checklist
To get a working Discord-connected assistant, you need:
- an authorized OpenAI Codex profile
- a Discord bot token
- at least one Discord access scope
- allowed user IDs, or
- allowed guild IDs
Example config
A minimal example looks like this:
{
"discord": {
"token": "YOUR_DISCORD_BOT_TOKEN",
"allowedUserIds": ["123456789012345678"],
"allowedGuildIds": []
},
"agent": {
"model": "gpt-5-codex"
},
"runtime": {
"note": "Primary ClawNeo config file."
}
}OpenAI authorization
ClawNeo uses OpenAI Codex OAuth.
From the CLI, open:
clawneo configThen choose:
OpenAI Settings -> Authorize OpenAIRelated local files:
~/.clawneo/auth-profiles.jsonDiscord configuration
Required field:
discord.token
Optional access controls:
discord.allowedUserIdsdiscord.allowedGuildIds
Behavior notes:
- if both allowlists are empty, ClawNeo treats access as open within the current bot scope
- if you set allowlists, only matching users or guilds are accepted
Agent configuration
Common fields:
agent.modelagent.workspaceRootagent.toolCwd
Defaults:
- model:
gpt-5-codex - workspace root:
~/.clawneo/workspace - tool cwd: current user's home directory
workspaceRoot
This is ClawNeo's managed workspace for persistent assistant files, including:
~/.clawneo/workspace/USER.mdtoolCwd
This is the default working directory used by tools such as read, ls, grep, and bash unless a task explicitly requires another path.
Runtime paths
ClawNeo derives several runtime paths under ~/.clawneo by default:
clawneo.jsonclawneo.dbauth-profiles.jsontranscripts/workspace/skills/
Environment variable overrides
ClawNeo supports environment-variable overrides for common paths and runtime behavior.
State and config
CLAWNEO_STATE_DIRCLAWNEO_CONFIG_PATHCLAWNEO_DB_PATHCLAWNEO_TRANSCRIPT_DIRCLAWNEO_AUTH_STORE_PATHCLAWNEO_WORKSPACE_ROOTCLAWNEO_TOOL_CWD
Agent and shell
CLAWNEO_MODELCLAWNEO_SHELLCLAWNEO_UI_NO_OPEN=1
Discord
DISCORD_TOKENDISCORD_ALLOWED_USER_IDSDISCORD_ALLOWED_GUILD_IDS
USER.md profile
ClawNeo keeps a human-editable profile file at:
~/.clawneo/workspace/USER.mdThis file is used to store stable preferences and other persistent context that should survive across sessions.
Architecture overview
ClawNeo is intentionally smaller than a general-purpose multi-agent platform. Its core execution path is:
Discord -> Session -> Codex -> Tools -> Reply -> Persistent contextCore modules
- Discord adapter: receives and sends Discord messages
- Session service: maps messages to a stable
sessionKeyand enforces serial execution - Agent runner: drives the Codex conversation loop and tool usage
- Tool executor: runs built-in tools such as
read,grep, andbash - Persistence layer: stores SQLite state, JSONL transcripts, and
USER.md - Reminder scheduler: handles reminder-style scheduled tasks
Session model
Recommended session key shapes:
- DM:
discord:dm:<userId> - Guild channel:
discord:guild:<guildId>:channel:<channelId> - Thread:
discord:guild:<guildId>:thread:<threadId>
Storage strategy
ClawNeo uses a mixed persistence approach:
SQLitefor structured stateJSONLfor append-only transcriptsUSER.mdfor human-editable profile context
Default state root:
~/.clawneoReminder path
Reminder delivery follows a dedicated system path:
Natural-language reminder -> reminder skill -> scheduled task tools -> SQLite -> in-process scheduler -> Discord reminderFor a more detailed and up-to-date implementation record, see:
Verify your configuration
Useful checks:
clawneo status
clawneo uiIf the service is not running yet, start it first:
clawneo startNext step
- Continue to Quick Start
- Continue to Commands