Skip to main content

API Reference

This page provides a complete reference for all Kiro Memory interfaces: the CLI, the MCP tools, and the TypeScript SDK.

CLI Reference

Setup Commands

CommandAliasDescriptionOptions
install--Set up hooks and MCP server--claude-code, --cursor, --windsurf, --cline
doctor--Run environment diagnostics--

Context and Search Commands

CommandAliasDescriptionOptions
contextctxShow current project context--
search <query>--Full-text keyword search (FTS5)--
semantic-search <query>semHybrid vector + keyword search--
resume [session-id]--Resume from a checkpointSession ID (optional)

Data Retrieval Commands

CommandAliasDescriptionOptions
observations [limit]obsShow recent observationsLimit (default: 10)
summaries [limit]sumShow recent summariesLimit (default: 5)

Data Storage Commands

CommandAliasDescriptionOptions
add-observation <title> <content>add-obsAdd a new observation--
add-summary <content>add-sumAdd a session summary--
add-knowledge <type> <title> <content>add-kStore structured knowledge--severity, --alternatives, --reason, --context, --confidence, --concepts, --files

Report and Analytics Commands

CommandAliasDescriptionOptions
report--Generate activity report--period=weekly|monthly, --format=text|md|json, --output=<file>

Maintenance Commands

CommandAliasDescriptionSubcommands
embeddingsembManage vector embeddingsstats, backfill [batch-size]
decay--Memory decay managementstats, detect-stale, consolidate [--dry-run]

Worker Commands

CommandDescription
worker:startStart background worker
worker:stopStop background worker
worker:restartRestart worker
worker:statusCheck worker status
worker:logsView recent logs
worker:tailFollow logs in real-time

MCP Tools Reference

Kiro Memory exposes 10 tools via the Model Context Protocol. These are available to any MCP-compatible AI assistant.

ToolDescription
searchFull-text search across observations and summaries
semantic_searchVector similarity search by meaning
timelineChronological context around an observation
get_observationsRetrieve full observation details by ID
get_contextRecent context for a project
store_observationStore a new observation
store_summaryStore a session summary
store_knowledgeStore structured knowledge
resume_sessionResume from a checkpoint
generate_reportGenerate activity report

For detailed documentation of each tool including parameters, return formats, and examples, see the MCP Server page.


TypeScript SDK

The SDK provides programmatic access to the complete Kiro Memory system. Install it as a dependency:

npm install kiro-memory

Initialization

import { createKiroMemory, KiroMemorySDK } from 'kiro-memory';

// Using factory function
const km = createKiroMemory({
dataDir: '~/.kiro-memory', // optional
project: 'my-project', // optional, auto-detected from cwd
skipMigrations: false, // optional, skip migration checks
});

// Using class directly
const km = new KiroMemorySDK({
project: 'my-project',
});

KiroMemoryConfig

interface KiroMemoryConfig {
dataDir?: string; // Base data directory (default: ~/.kiro-memory)
project?: string; // Project name (default: auto-detected)
skipMigrations?: boolean; // Skip migration checks for performance
}

Storage Methods

storeObservation(data)

Store a new observation.

const id: number = await km.storeObservation({
type: 'file-write', // file-write | command | research | tool-use | constraint | decision | heuristic | rejected
title: 'Written: src/app.ts',
content: 'Refactored main application entry point',
concepts: ['refactoring', 'architecture'], // optional
files: ['src/app.ts'], // optional
});

Returns: Promise<number> -- The observation ID.


storeSummary(data)

Store a session summary.

const id: number = await km.storeSummary({
request: 'Implement user authentication',
learned: 'JWT refresh tokens need rotation logic',
completed: ['Login flow', 'Session persistence'],
nextSteps: ['Add refresh token rotation', 'Write auth tests'],
});

Returns: Promise<number> -- The summary ID.


storeKnowledge(data)

Store structured knowledge.

const id: number = await km.storeKnowledge({
knowledgeType: 'decision', // decision | constraint | heuristic | rejected
title: 'Use PostgreSQL',
content: 'Chose PostgreSQL over MongoDB for relational data integrity',
project: 'my-project',
reason: 'Need ACID transactions for payment processing', // optional
alternatives: ['MongoDB', 'SQLite'], // optional
severity: 'hard', // optional, for constraints: hard | soft
context: 'When processing payments', // optional, for heuristics
confidence: 'high', // optional, for heuristics: high | medium | low
concepts: ['database', 'payments'], // optional
files: ['src/db/config.ts'], // optional
});

Returns: Promise<number> -- The observation ID.


storePrompt(contentSessionId, promptNumber, text)

Store a user prompt for session tracking.

const id: number = await km.storePrompt('session-123', 1, 'Fix the auth bug in login.ts');

Returns: Promise<number> -- The prompt ID.


Retrieval Methods

getContext()

Retrieve recent context for the current project.

const context = await km.getContext();
// context.observations: Observation[]
// context.summaries: Summary[]
// context.prompts: UserPrompt[]

Returns: Promise<ContextContext>


getSmartContext(options?)

Retrieve ranked context using the 4-signal scoring model.

const smartCtx = await km.getSmartContext({
tokenBudget: 2000, // optional, default: 2000
query: 'authentication', // optional, enables semantic ranking
});
// smartCtx.items: ScoredItem[]

Returns: Promise<SmartContext>


getRecentObservations(limit?)

Fetch recent observations.

const observations: Observation[] = await km.getRecentObservations(10);

Returns: Promise<Observation[]> -- Default limit: 10.


getRecentSummaries(limit?)

Fetch recent summaries.

const summaries: Summary[] = await km.getRecentSummaries(5);

Returns: Promise<Summary[]> -- Default limit: 5.


getObservationsByIds(ids)

Batch retrieve observations by ID.

const observations: Observation[] = await km.getObservationsByIds([1, 5, 12]);

Returns: Promise<Observation[]>


Search Methods

search(query)

Basic full-text search across observations and summaries.

const results = await km.search('authentication middleware');
// results.observations: Observation[]
// results.summaries: Summary[]

Returns: Promise<{ observations: Observation[]; summaries: Summary[] }>


searchAdvanced(query, filters?)

FTS5-based search with optional filters.

const results = await km.searchAdvanced('auth', {
project: 'my-app',
type: 'file-write',
// dateRange: { start: '2025-01-01', end: '2025-12-31' }
});

Returns: Promise<{ observations: Observation[]; summaries: Summary[] }>


hybridSearch(query, options?)

Combined vector + keyword search.

const results: SearchResult[] = await km.hybridSearch('error handling patterns', {
limit: 10, // optional, default: 10
});

Returns: Promise<SearchResult[]>


semanticSearch(query, options?)

Pure vector similarity search.

const results: SearchResult[] = await km.semanticSearch('how to handle retries', {
limit: 10, // optional, default: 10
threshold: 0.3, // optional, minimum similarity score, default: 0.3
});

Returns: Promise<SearchResult[]>


Timeline and Session Methods

getTimeline(anchorId, depthBefore?, depthAfter?)

Get chronological context around a specific observation.

const entries: TimelineEntry[] = await km.getTimeline(42, 5, 5);

Returns: Promise<TimelineEntry[]> -- Default depths: 5 before, 5 after.


getOrCreateSession(contentSessionId)

Create or retrieve a session.

const session: DBSession = await km.getOrCreateSession('session-abc-123');

Returns: Promise<DBSession>


completeSession(sessionId)

Mark a session as completed.

await km.completeSession(42);

Returns: Promise<void>


createCheckpoint(sessionId, data)

Save a structured checkpoint for session resumption.

const id: number = await km.createCheckpoint(42, {
task: 'Implement payment flow',
progress: 'Stripe SDK integrated',
nextSteps: ['Add idempotency keys', 'Write webhook tests'],
openQuestions: ['Which webhook events to handle?'],
relevantFiles: ['src/payments/stripe.ts', 'src/webhooks/payment.ts'],
});

Returns: Promise<number> -- The checkpoint ID.


getCheckpoint(sessionId)

Retrieve the latest checkpoint for a session.

const checkpoint: DBCheckpoint | null = await km.getCheckpoint(42);

Returns: Promise<DBCheckpoint | null>


getLatestProjectCheckpoint()

Retrieve the latest checkpoint for the current project.

const checkpoint: DBCheckpoint | null = await km.getLatestProjectCheckpoint();

Returns: Promise<DBCheckpoint | null>


Report Methods

generateReport(options?)

Generate an activity report.

const report: ReportData = await km.generateReport({
period: 'weekly', // optional: weekly | monthly
startDate: '2025-01-01', // optional
endDate: '2025-01-31', // optional
});

Returns: Promise<ReportData>


Embedding Methods

initializeEmbeddings()

Initialize the embedding service (lazy loaded).

const available: boolean = await km.initializeEmbeddings();

Returns: Promise<boolean> -- Whether embeddings are available.


backfillEmbeddings(batchSize?)

Generate embeddings for observations that lack them.

const count: number = await km.backfillEmbeddings(50);  // default: 50

Returns: Promise<number> -- Number of embeddings generated.


getEmbeddingStats()

Get embedding coverage statistics.

const stats = km.getEmbeddingStats();
// stats.total: number
// stats.embedded: number
// stats.percentage: number

Returns: { total: number; embedded: number; percentage: number }


Maintenance Methods

detectStaleObservations()

Flag observations linked to files that have changed.

const staleCount: number = await km.detectStaleObservations();

Returns: Promise<number> -- Count of newly stale observations.


consolidateObservations(options?)

Merge duplicate observations.

const result = await km.consolidateObservations({ dryRun: false });
// result.merged: number
// result.removed: number

Returns: Promise<{ merged: number; removed: number }>


getDecayStats()

Get memory decay statistics.

const stats = await km.getDecayStats();
// stats.total: number
// stats.stale: number
// stats.neverAccessed: number
// stats.recentlyAccessed: number

Returns: Promise<{ total: number; stale: number; neverAccessed: number; recentlyAccessed: number }>


Utility Methods

getProject()

Get the current project name.

const name: string = km.getProject();

Returns: string


getDb()

Get direct database access (for advanced use cases).

const db = km.getDb();

Returns: Database instance.


close()

Close the database connection. Call this when done using the SDK.

km.close();

Returns: void


Exported Types

import type {
Observation,
Summary,
UserPrompt,
DBSession,
DBCheckpoint,
ContextContext,
SearchFilters,
TimelineEntry,
ScoredItem,
SmartContext,
StoreKnowledgeInput,
KnowledgeType,
KnowledgeMetadata,
ReportData,
SearchResult,
KiroMemoryConfig,
} from 'kiro-memory';

Deprecated Aliases

The following aliases are maintained for backward compatibility but should not be used in new code:

DeprecatedReplacement
ContextKitSDKKiroMemorySDK
createContextKit()createKiroMemory()
ContextKitConfigKiroMemoryConfig