Configuration

June 13, 2026 ยท View on GitHub

CLI Configuration

Use the unforgit config command to manage all settings:

# List all configuration
unforgit config list

# Set remote server URL
unforgit config set remote.url https://unforgit.example.com

# Get a specific value
unforgit config get remote.url

Authentication

The remote server requires API key authentication:

# Set API key for this repository
unforgit auth set hk_your_api_key_here

# Check authentication status
unforgit auth status

# Remove API key
unforgit auth remove

Local-first embeddings and optional OpenAI

Unforgit works without an OpenAI API key. Embeddings default to provider: auto, which uses local no-key embeddings unless you explicitly configure an OpenAI embedding model and OPENAI_API_KEY.

What works WITHOUT OpenAI

FeatureStatus
Add memories (unforgit add)Full
Recall (unforgit recall)FTS5 + local embeddings
Promote, deprecate, supersedeFull
Manual consolidation (unforgit merge)Full
Team sync (push/pull)Full
Web dashboardFull
MCP integration (Cursor)Full
Links and historyFull

What still requires OpenAI or another LLM provider

FeatureDescription
OpenAI-backed embeddingsSet embeddings.provider: openai plus OPENAI_API_KEY
Auto-consolidation text generationAI-powered text consolidation still needs a generative model

Optional OpenAI key

# Set via CLI
unforgit auth openai sk-your-api-key

# Or in .unforgit/unforgit.yaml
openaiApiKey: sk-your-api-key

# Or via environment variable
export OPENAI_API_KEY=sk-your-api-key

When the key is not configured, Unforgit uses local embeddings by default. To force local-only behavior, set embeddings.provider: local. To disable embeddings entirely and use FTS-only recall, set embeddings.provider: disabled or embeddings.enabled: false. If you change providers or models, unforgit embeddings backfill detects incompatible provider/model/dimension metadata and regenerates the affected vectors.

YAML Configuration File

You can also edit .unforgit/unforgit.yaml directly:

remote:
  url: http://localhost:3737
  orgId: your-org
  repoId: your-repo
  apiKey: hk_your_api_key_here
defaults:
  visibility: auto
  memoryType: episodic
sync:
  enabled: true
  intervalMs: 60000           # Sync every 60 seconds
  debounceMs: 5000            # Wait 5s after changes before syncing
  autoResolveConflicts: last_write_wins  # or: local_wins, remote_wins, manual
embeddings:
  enabled: true
  provider: auto                 # auto, local, openai, disabled
  model: local-hash-multilingual-v1
  autoGenerate: true          # Generate embeddings on memory creation
lifecycle:
  ttlSecondsByType:
    episodic: 2592000         # 30 days
  usageBoost:
    topKToRecord: 5
    minUsageCount: 2
    maxBoost: 0.15
    halfLifeDays: 30
  maintenance:
    staleEpisodicDays: 30
    consolidationThreshold: 0.5
    consolidationMinGroupSize: 2
    consolidationMaxGroups: 5
    promoteRecallCount: 5
    pinRecallCount: 8
    dryRunDefault: true
    autoRunOnStore: true
    autoRunOnRecall: true
    debounceMs: 30000