Skip to main content

Overview

The memory config command displays the current configuration and provides subcommands for managing the memory home location.

Syntax

memory config [SUBCOMMAND]

Show Configuration

View current config

memory config
Output:
embedding:
  provider: ollama
  model: nomic-embed-text
  base_url: http://localhost:11434
  api_key: <redacted>
context:
  semantic: auto
  topup_recent: true
memory_home: /home/user/.memory
memory_home_source: persisted

Configuration fields

embedding.provider
string
Embedding provider: ollama or openai.
embedding.model
string
Model name (e.g., nomic-embed-text, text-embedding-3-small).
embedding.base_url
string
API base URL for the provider.
embedding.api_key
string
API key (redacted in output).
context.semantic
string
Semantic search mode: auto, always, or never.
context.topup_recent
boolean
Whether to include recent memories in context.
memory_home
string
Resolved memory home directory path.
memory_home_source
string
Source of memory home: env, persisted, or default.

Subcommands

init

Generate a starter config.yaml file.
memory config init
Output:
Created /home/user/.memory/config.yaml
Edit the file to configure your embedding provider.

Options

--force
flag
Overwrite existing config file.

Examples

Initialize config:
memory config init
Force overwrite:
memory config init --force

Generated config template

# EchoVault configuration
# Docs: https://github.com/mraza007/echovault#configure-embeddings-optional

# Embedding provider for semantic search.
# Without this, keyword search (FTS5) still works.
embedding:
  provider: ollama              # ollama | openai
  model: nomic-embed-text
  # base_url: http://localhost:11434   # ollama default; for openai: https://api.openai.com/v1
  # api_key: sk-...            # required for openai

# How memories are retrieved at session start.
# "auto" uses vectors when available, falls back to keywords.
context:
  semantic: auto                # auto | always | never
  topup_recent: true            # also include recent memories

set-home

Persist the memory home location in global config (used when MEMORY_HOME is not set).
memory config set-home <path>
Arguments:
path
string
required
Path to use as memory home. Can be absolute or use ~ for home directory.
Output:
Persisted memory home: /path/to/custom/location
Override anytime with MEMORY_HOME.

Examples

Set custom location:
memory config set-home ~/projects/.memory
Use absolute path:
memory config set-home /opt/memories
What it does:
  1. Saves the path to ~/.config/memory/config.yaml
  2. Creates the directory and vault/ subdirectory if they don’t exist
  3. This path is used when MEMORY_HOME environment variable is not set

clear-home

Remove the persisted memory home location from global config.
memory config clear-home
Output when cleared:
Cleared persisted memory home setting.
Output when not set:
No persisted memory home setting was found.

Examples

Clear persisted setting:
memory config clear-home
After clearing, EchoVault will:
  • Use $MEMORY_HOME if set
  • Otherwise use default ~/.memory

Memory Home Resolution

EchoVault determines the memory home directory in this order:
  1. Environment variable: $MEMORY_HOME (highest priority)
  2. Persisted setting: Set via memory config set-home
  3. Default: ~/.memory (fallback)

Check current source

memory config | grep memory_home
Output:
memory_home: /home/user/.memory
memory_home_source: default
Sources:
  • env: From MEMORY_HOME environment variable
  • persisted: From memory config set-home
  • default: Using ~/.memory

Examples

Initial setup

# Create config file
memory config init

# Edit embedding settings
nano ~/.memory/config.yaml

# Verify configuration
memory config

Use custom memory location

# Set persistent location
memory config set-home ~/Dropbox/memories

# Verify it's set
memory config

# Override temporarily with environment variable
MEMORY_HOME=/tmp/test-memory memory context --project

Reset to defaults

# Clear persisted home
memory config clear-home

# Regenerate default config
rm ~/.memory/config.yaml
memory config init

Configure OpenAI embeddings

memory config init
Edit ~/.memory/config.yaml:
embedding:
  provider: openai
  model: text-embedding-3-small
  base_url: https://api.openai.com/v1
  api_key: sk-...

context:
  semantic: auto
  topup_recent: true
Test it:
memory config
memory reindex

Configure Ollama (local)

memory config init
Edit ~/.memory/config.yaml:
embedding:
  provider: ollama
  model: nomic-embed-text
  base_url: http://localhost:11434

context:
  semantic: auto
  topup_recent: true
memory config init
Edit ~/.memory/config.yaml:
# Omit embedding section entirely, or:
embedding:
  provider: null

context:
  semantic: never  # Force FTS-only
  topup_recent: true

Configuration File Location

Project config

$MEMORY_HOME/config.yaml
Example: ~/.memory/config.yaml

Global config (for persisted home)

~/.config/memory/config.yaml
Stores the set-home path.
After changing embedding settings in config.yaml, run memory reindex to regenerate embeddings for existing memories.
API keys are redacted in memory config output for security. They’re never shown in plain text on the command line.

Build docs developers (and LLMs) love