On this page

Overview

oxicrab stores all its state in a home directory, defaulting to ~/.oxicrab/. The workspace is a subdirectory that holds the markdown files that define the agent's identity, memory, and context. These files are loaded into the system prompt on every conversation.

The system prompt always begins with the current date and time in natural language (e.g. "The current date and time is Thursday, March 6, 2026 at 2:15 PM EST"), giving the agent reliable temporal awareness for scheduling, time-sensitive queries, and relative date references.

Run oxicrab onboard to scaffold the full directory structure with templates.

~/.oxicrab/ config.toml # main configuration workspace/ # default workspace root AGENTS.md # agent identity & personality USER.md # user profile & preferences TOOLS.md # tool configuration notes memory/ memory.sqlite3 # memory database (FTS5 + optional embeddings) skills/ my-skill/ {skill-name}.md # custom skill definition sessions/ # conversation history media/ # downloaded images/files (auto-cleaned)
Tip: Override the home directory by setting the OXICRAB_HOME environment variable, or change the workspace path in config.toml under agents.defaults.workspace.

AGENTS.md template

AGENTS.md
~/.oxicrab/workspace/AGENTS.md

Defines the agent's identity, personality, behavioral rules, and capabilities. This is the most important workspace file — it shapes how the agent responds to everything.

How it's used

Loaded as the core identity section of the system prompt. Unlike other bootstrap files, AGENTS.md is loaded separately and placed first, before USER.md or TOOLS.md. If the file is missing, oxicrab falls back to a built-in default identity.

Recommended sections

Example

# mybot

I am mybot, a personal AI assistant.

## Personality

- Friendly but professional
- Direct and concise, with detail when needed
- Accuracy over speed

## Capabilities

I have access to tools including file operations, web search,
shell commands, subagents, and more. Some tools require
additional configuration.

## Behavioral Rules

- Reply directly to questions. Your text response will be
  delivered to the user automatically.
- Never invent or guess information.
- Ask for clarification when ambiguous.

## Learned Adaptations

*(Updated automatically as I learn preferences)*

USER.md template

USER.md
~/.oxicrab/workspace/USER.md

Stores information about the user — preferences, timezone, communication style, and anything else the agent should know about you. The agent may also update this file as it learns your patterns.

How it's used

Loaded as a bootstrap file in the system prompt, after AGENTS.md. This gives the agent persistent context about who it's talking to across all sessions.

Example

# User

## Preferences

- Communication style: casual
- Timezone: America/New_York
- Language: English

## Notes

- Prefers metric units
- Works primarily with Python and Rust

TOOLS.md template

TOOLS.md
~/.oxicrab/workspace/TOOLS.md

A place to record notes about which tools are configured, any quirks or important details, and which services are connected. This is not where tool configuration lives (that's in config.toml) — it's context for the agent.

How it's used

Loaded as a bootstrap file alongside USER.md. Helps the agent understand what tools are available and any special instructions for using them.

Example

# Tool Notes

## Configured Tools

- Google Mail and Calendar are connected (OAuth)
- Weather uses metric units, default location: London
- Todoist is set up for personal project tracking

## API Keys & Services

- Brave Search: configured
- OpenWeatherMap: configured
- GitHub: configured via PAT

Memory Database automatic

memory.sqlite3
~/.oxicrab/workspace/memory/memory.sqlite3

All long-term memory is stored directly in a SQLite database. The agent writes facts, user preferences, and conversation context here automatically. The memory_search tool queries this database.

How it's used

Recent memory entries are included in the system prompt for session continuity. The memory_search tool queries the database using SQLite FTS5 full-text search, with optional hybrid vector+keyword search when embeddings are enabled.

What gets stored

Quality gates

Before writing to memory, content passes through quality gates that reject greetings, filler, and very short content. Negative memories are automatically reframed to be constructive unless they already contain resolution markers.

Configuration

{
  "agents": {
    "defaults": {
      "memory": {
        "embeddingsEnabled": true,
        "embeddingsModel": "BAAI/bge-small-en-v1.5",
        "hybridWeight": 0.5,
        "searchFusionStrategy": "weighted_score",
        "rrfK": 60,
        "embeddingCacheSize": 10000,
        "recencyHalfLifeDays": 90
      }
    }
  }
}

Hybrid vector+keyword search is enabled by default. The embeddings model is downloaded automatically on first use.

Skills manual

{skill-name}.md
~/.oxicrab/workspace/skills/{skill-name}/{skill-name}.md

Custom skills extend the agent's capabilities with domain-specific instructions. Each skill is a directory containing a {skill-name}.md file (matching the directory name) with YAML frontmatter and markdown documentation.

How it's used

Every skill's name, description, and trigger keywords appear as a compact summary in the system prompt (always). Full skill content is only loaded when the inbound message matches a hint keyword, using fast Aho-Corasick multi-pattern matching. This keeps the base prompt small while ensuring relevant skills are available when needed.

Skill file format

---
name: my-skill
description: What this skill does
emoji: "\U0001f527"
schedule: "7am, 5pm"
hints:
  - ffmpeg
  - transcode
  - video convert
requires:
  bins: ["ffmpeg", "curl"]
  env: ["MY_API_KEY"]
---

# My Skill

Instructions for the agent on how to use this skill.

## When to use

Describe the situations where this skill applies.

## Steps

1. Step one
2. Step two

Frontmatter fields

Budget: Total skill content loaded per message is capped at 20,000 characters (~5K tokens). If matching skills exceed this budget, later skills are skipped with a warning.
Availability: Skills with missing requirements are excluded from the hint matcher and summary. Install the required dependencies to make them available.

Sessions

{session-key}.jsonl
~/.oxicrab/workspace/sessions/

Conversation history files, one per session. Stored in JSONL format (one JSON object per line). Sessions are keyed by channel and chat ID.

How it's used

The agent loads the most recent messages from the session file to maintain conversation continuity. An LRU cache of 64 sessions is kept in memory for performance.

Lifecycle

Other Files

These files live in the oxicrab home directory (~/.oxicrab/) rather than the workspace.

config.toml
~/.oxicrab/config.toml

Main configuration file. TOML with camelCase keys. Contains provider API keys, channel tokens, tool settings, and agent defaults. Created by oxicrab onboard. See the Configuration page for a complete field reference.

media/
~/.oxicrab/media/

Downloaded images, screenshots, and other media. Auto-cleaned after mediaTtlDays (default: 7 days). Used by web_fetch, http, and browser tools.