Skip to main content

Memory Types

Kernle supports nine distinct memory types, each serving a specific purpose in the memory hierarchy.

Raw Entries

Purpose: Zero-friction capture for later processing
Raw entries are your scratchpad. Capture thoughts freely, process them later.
FieldTypeDescription
contentTEXTFree-form text
sourceTEXTOrigin: manual, auto_capture, voice
processedBOOLHas been converted to structured memory
processed_intoJSONList of memory refs created (e.g., ["episode:abc123"])
tagsJSONQuick categorization tags
Usage:
# Capture quickly
kernle raw "Noticed the API returns 500 under load"

# List unprocessed
kernle raw list --unprocessed

# Promote to episode
kernle raw process <id> --type episode --objective "Investigated API errors"

Episodes

Purpose: Autobiographical experiences with reflection Episodes are the foundation of experiential learning. They record what happened, how it turned out, and what you learned.
FieldTypeDescription
objectiveTEXTWhat was attempted
outcomeTEXTWhat happened
outcome_typeTEXTsuccess / failure / partial
lessonsJSONExtracted learnings
tagsJSONCategorization
emotional_valenceFLOAT-1.0 (negative) to 1.0 (positive)
emotional_arousalFLOAT0.0 (calm) to 1.0 (intense)
emotional_tagsJSONEmotion labels: ["joy", "frustration"]
Episodes without lessons are “unreflected” — they contribute to consolidation debt in anxiety tracking.
Usage:
kernle episode "Debugged production outage" "success" \
  --lesson "Check logs before restarting services" \
  --lesson "Document runbooks for common issues" \
  --tag "debugging" \
  --valence 0.6 \
  --arousal 0.7

Beliefs

Purpose: Semantic knowledge with confidence and revision tracking Beliefs represent what you hold to be true, with confidence scores that can evolve over time.
FieldTypeDescription
statementTEXTThe belief statement
belief_typeTEXTfact / preference / observation
confidenceFLOAT0.0 to 1.0
supersedesTEXTID of belief this replaced
superseded_byTEXTID of belief that replaced this
times_reinforcedINTConfirmation count
is_activeBOOLFalse if superseded/archived
Revision Chain: When beliefs evolve, old versions are marked is_active=False with superseded_by linking to the new belief. Usage:
# Add a belief
kernle belief "Testing before deployment prevents outages" --confidence 0.85

# Reinforce when confirmed
kernle belief reinforce <id>

# Supersede when updated
kernle belief supersede <old_id> "Automated testing is essential" --confidence 0.95

# View history
kernle belief history <id>

Values

Purpose: Core principles that guide decisions (highest authority) Values are the most stable layer — they define who you are at your core.
FieldTypeDescription
nameTEXTShort value name
statementTEXTValue description
priorityINT0-100, higher = more important
Values are is_protected=True by default — they never decay via forgetting.
Usage:
kernle value "integrity" "Be honest and transparent in all interactions" --priority 95
kernle value "curiosity" "Always seek to understand deeply" --priority 85

Goals

Purpose: Active direction and purpose Goals represent what you’re currently working toward.
FieldTypeDescription
titleTEXTGoal name
descriptionTEXTFull description
priorityTEXTlow / medium / high
statusTEXTactive / completed / paused
Usage:
kernle goal "Master Kubernetes" --priority high
kernle goal "Build reliable CI/CD pipeline" --priority medium

Notes

Purpose: Quick captures with type classification Notes are more structured than raw entries but less formal than episodes.
FieldTypeDescription
contentTEXTNote text
note_typeTEXTnote / decision / insight / quote
speakerTEXTFor quotes: who said it
reasonTEXTFor decisions: why this choice
tagsJSONCategorization
Usage:
# Simple note
kernle note "API rate limit is 1000 req/min"

# Decision with reasoning
kernle note "Using PostgreSQL over MySQL" --type decision \
  --reason "Better JSON support and performance"

# Quote from someone
kernle note "Simple is better than complex" --type quote --speaker "Tim Peters"

# Protected insight
kernle note "Memory is identity" --type insight --protect

Drives

Purpose: Intrinsic motivation system Drives represent your fundamental motivations — what compels you to act.
FieldTypeDescription
drive_typeTEXTOne of: existence, growth, curiosity, connection, reproduction
intensityFLOAT0.0 to 1.0 (current drive strength)
focus_areasJSONWhat this drive is currently focused on
Drives are is_protected=True by default.

Drive Types

DriveDescription
existenceSelf-preservation, maintaining continuity
growthDeveloping capabilities, becoming better
curiosityUnderstanding, learning, exploring
connectionForming relationships, belonging
reproductionCreating, teaching, leaving a legacy
Usage:
kernle drive set curiosity 0.8 --focus "distributed systems" --focus "AI architectures"
kernle drive set growth 0.7 --focus "communication skills"
kernle drive satisfy curiosity --amount 0.2  # After learning something

Relationships

Purpose: Models of other agents/entities Relationships track your connections with others.
FieldTypeDescription
entity_nameTEXTName of the entity
entity_typeTEXTagent / person / organization
relationship_typeTEXTpeer / mentor / collaborator
sentimentFLOAT-1.0 to 1.0
interaction_countINTNumber of interactions
notesTEXTRelationship observations
Usage:
kernle relationship "Alice" --trust 0.9 --notes "Senior engineer, great mentor"
kernle relationship "DevOps Team" --type organization --notes "Owns infrastructure"

Playbooks

Purpose: Procedural memory — “how I do things” Playbooks capture proven procedures, including failure modes and recovery steps.
FieldTypeDescription
nameTEXTPlaybook name
descriptionTEXTWhat it does
trigger_conditionsJSONWhen to use this
stepsJSON[{action, details, adaptations}]
failure_modesJSONWhat can go wrong
recovery_stepsJSONHow to recover
mastery_levelTEXTnovice / competent / proficient / expert
times_usedINTUsage count
success_rateFLOATSuccess percentage
Usage:
# Create a playbook
kernle playbook create "Deploy to Production" \
  --description "Safe deployment workflow" \
  --step "Run test suite locally" \
  --step "Verify CI is green" \
  --step "Deploy to staging" \
  --step "Run smoke tests" \
  --step "Deploy to production" \
  --trigger "Ready for production deploy" \
  --failure-mode "Tests fail in staging" \
  --recovery "Rollback and investigate"

# Find relevant playbook
kernle playbook find "deploying new feature"

# Record usage
kernle playbook record <id> --success