Introduction
The Mimik AI SDK provides a Node.js/TypeScript API for programmatically interacting with your
local Mimik
AI installation. All operations are performed locally — no network requests are made.
npm install @mimik-ai/sdk
import { MimikAI } from '@mimik-ai/sdk';
const mimik = new MimikAI({
skillsDir: '~/.mimik/skills',
knowledgeDir: '~/.mimik/knowledge',
});
// List all installed skills
const skills = await mimik.skills.list();
console.log(`${skills.length} skills installed`);
Authentication
The SDK validates your local license automatically. No API keys are needed — your license key
is verified
from ~/.mimik/license.key.
const mimik = new MimikAI();
// Check license status
const license = await mimik.license.status();
// {
// plan: 'Pro',
// devicesAllowed: 3,
// devicesUsed: 1,
// activated: '2026-03-08T00:00:00Z',
// updates: 'lifetime'
// }
GET
mimik.skills.list(options?)
List Skills
Returns all installed skills, optionally filtered by category or search query.
Parameters
| Parameter |
Type |
Description |
category |
string |
Filter by category: development, security, devops, design, data, ai |
search |
string |
Fuzzy search query against skill names and descriptions |
limit |
number |
Maximum number of results (default: 50) |
const skills = await mimik.skills.list({
category: 'security',
search: 'owasp'
});
// Returns:
// [
// {
// name: 'owasp-top-10',
// version: '2.1.0',
// category: 'security',
// description: 'Identify and remediate OWASP Top 10...',
// triggers: ['owasp', 'security', 'vulnerability'],
// installedAt: '2026-01-15T10:30:00Z'
// }
// ]
POST
mimik.skills.install(name, options?)
Install Skill
Installs a skill from the Mimik AI library. The skill files are downloaded and unpacked into
your local
skills directory.
const result = await mimik.skills.install('react-best-practices', {
version: 'latest', // or pin: '2.1.0'
overwrite: false // don't overwrite existing customizations
});
// { success: true, name: 'react-best-practices', version: '2.1.0' }
DELETE
mimik.skills.uninstall(name)
Uninstall Skill
Removes a skill and its associated files from the local skills directory.
await mimik.skills.uninstall('react-best-practices');
// { success: true, removed: 'react-best-practices' }
POST
mimik.skills.create(options)
Create Skill
Scaffolds a new custom skill with the standard directory structure.
const skill = await mimik.skills.create({
name: 'my-company-standards',
description: 'Internal coding standards and review checklists',
category: 'development',
triggers: ['code review', 'standards', 'lint']
});
// Creates:
// ~/.mimik/skills/my-company-standards/
// ├── SKILL.md
// ├── scripts/
// ├── examples/
// └── resources/
POST
mimik.knowledge.index(directory, options?)
Index Directory
Scans a directory and extracts knowledge items from source code, documentation, and other
files.
const result = await mimik.knowledge.index('./my-project', {
recursive: true,
extensions: ['.ts', '.js', '.md', '.py'],
ignore: ['node_modules', '.git', 'dist']
});
// {
// itemsCreated: 142,
// filesScanned: 387,
// duration: '4.2s'
// }
GET
mimik.knowledge.search(query, options?)
Search Knowledge
Performs semantic search against your knowledge base using natural language queries.
const results = await mimik.knowledge.search('authentication middleware patterns', {
limit: 10,
minScore: 0.7
});
// [
// {
// id: 'ki_a1b2c3',
// title: 'JWT Authentication Middleware',
// summary: 'Express middleware for validating JWT tokens...',
// score: 0.94,
// source: 'src/middleware/auth.ts',
// updatedAt: '2026-03-01T14:20:00Z'
// },
// ...
// ]
GET
mimik.knowledge.get(id)
Get Knowledge Item
Retrieves a single knowledge item by its ID, including all metadata and artifacts.
const item = await mimik.knowledge.get('ki_a1b2c3');
// {
// id: 'ki_a1b2c3',
// title: 'JWT Authentication Middleware',
// summary: '...',
// artifacts: ['auth_patterns.md', 'middleware_flow.md'],
// references: ['src/middleware/auth.ts', 'src/config/jwt.ts'],
// createdAt: '2026-02-15T09:00:00Z',
// updatedAt: '2026-03-01T14:20:00Z'
// }
GET
mimik.knowledge.export(options?)
Export Knowledge
Exports the entire knowledge base or a filtered subset for sharing or backup.
const exported = await mimik.knowledge.export({
format: 'json', // 'json' | 'markdown'
since: '2026-01-01', // only items after this date
categories: ['auth', 'database']
});
// Returns a JSON string or array of markdown files
POST
mimik.sync.init(options?)
Initialize Sync
Starts the P2P sync service and generates a pairing code for connecting devices.
const sync = await mimik.sync.init({
port: 9876, // optional, auto-assigned by default
encryption: 'aes-256' // default
});
// {
// pairingCode: 'MKMK-7F3A-9B2D',
// expiresIn: 300, // seconds
// port: 9876,
// deviceId: 'dev_macbook_01'
// }
POST
mimik.sync.pair(code)
Pair Device
Connects to another Mimik AI device using a pairing code.
const paired = await mimik.sync.pair('MKMK-7F3A-9B2D');
// {
// success: true,
// connectedTo: 'dev_linux_desktop',
// skillsSynced: 127,
// knowledgeSynced: 3421
// }
GET
mimik.sync.status()
Sync Status
Returns the current sync status including connected devices and sync health.
const status = await mimik.sync.status();
// {
// active: true,
// devices: [
// { id: 'dev_macbook_01', name: 'MacBook Pro', lastSeen: '2m ago' },
// { id: 'dev_linux_desktop', name: 'Linux Desktop', lastSeen: '5m ago' }
// ],
// totalSkills: 127,
// totalKnowledge: 3421,
// lastSync: '2026-03-08T12:00:00Z'
// }
GET
mimik.config.get(key?)
Get Config
Reads the current configuration or a specific key.
// Get all config
const config = await mimik.config.get();
// Get specific key
const skillsDir = await mimik.config.get('skills.directory');
// '~/.mimik/skills'
PUT
mimik.config.set(key, value)
Set Config
Updates a configuration value. Changes are persisted to mimik.config.yaml.
await mimik.config.set('knowledge.auto_index', true);
await mimik.config.set('editor.hot_reload', true);
// { success: true }