Overview
| Command | Description | Cost |
|---|
naive memory add <content> | Add a new memory entry | Free |
naive memory list | List all stored memories | Free |
naive memory remove | Remove a memory by matching text | Free |
How It Works
Memories persist across agent sessions and are injected into agent context automatically. They map to Hermes’ MEMORY.md and USER.md files.
Important: Hermes owns the memory files. When you use naive memory add, the content is sent as a message to the CEO agent, which naturally incorporates it into its memory. The sidecar then mirrors the updated MEMORY.md to the datastore for read access via naive memory list.
Memory Targets
| Target | File | Purpose |
|---|
memory | MEMORY.md | Factual knowledge the agent should retain (company info, procedures, etc.) |
user | USER.md | User interaction preferences (communication style, timezone, formatting) |
Add a Memory
naive memory add --target memory "Our primary domain is example.com"
naive memory add --target user "User is based in EST timezone"
naive memory add --target memory "Tech stack: Next.js, the managed database, payments" --agent-id engineer-1
Options
| Flag | Required | Description |
|---|
--target <type> | Yes | memory (agent facts) or user (user preferences) |
--agent-id <id> | No | Specific agent to store memory for (default: current agent) |
Output
{
"success": true,
"action": "memory.add",
"result": { "status": "memory_requested", "run": { "run_id": "run-abc-123" } },
"hints": [
"Memory sent to CEO for incorporation (target: memory)",
"This will be included in agent context for future runs"
]
}
Memory writes go through the CEO agent — Hermes owns MEMORY.md. The CEO incorporates your content naturally into its memory during its next turn. Use naive memory list after a few seconds to verify it was stored.
List Memories
naive memory list
naive memory list --agent-id ceo-1
naive memory list --target user
Options
| Flag | Description |
|---|
--agent-id <id> | Filter by agent ID |
--target <type> | Filter by target type: memory or user |
Remove a Memory
Searches for the first memory containing the --text substring and removes it.
naive memory remove --target memory --text "brand color"
naive memory remove --target user --text "timezone"
naive memory remove --target memory --text "payments" --agent-id ceo-1
Options
| Flag | Required | Description |
|---|
--target <type> | Yes | memory or user |
--text <substring> | Yes | Text to match |
--agent-id <id> | No | Specific agent’s memories to search |
Typical Workflow
# 1. Store company facts
naive memory add --target memory "Our company brand color is #FF6B00"
naive memory add --target memory "We use Naive payments, account ID: acct_123"
# 2. Set user preferences
naive memory add --target user "User prefers concise bullet-point responses"
naive memory add --target user "Always address the user as 'Chief'"
# 3. Review stored memories
naive memory list
# 4. Remove outdated info
naive memory remove --target memory --text "brand color"