What is knowledge?
The knowledge command manages your project's knowledge base. The knowledge base stores domain-specific technical terms, acronyms, and synonyms that improve CIAK's search quality and query understanding.
ciak knowledge <ACTION> [OPTIONS]
This is different from ciak sync knowledge (which imports entries from a file into the database). The knowledge command manages the knowledge base itself.
Actions
init
Create a default .ciak/knowledge.json template in your project:
ciak knowledge init
This generates a starter file you can edit with your project's domain terms.
list
List all knowledge entries currently in the database:
ciak knowledge list
ciak knowledge list --source user # only user-defined entries
ciak knowledge list --source extracted # only auto-extracted entries
export
Export knowledge entries to a file:
ciak knowledge export # export all entries
ciak knowledge export --user-only # only user-defined entries
ciak knowledge export --extracted-only # only auto-extracted entries
install
Install a pre-built knowledge template for a specific domain:
ciak knowledge install <TEMPLATE> # install a template
ciak knowledge install --list-templates # list available templates
ciak knowledge install <TEMPLATE> --force # overwrite existing entries
ciak knowledge install <TEMPLATE> --dry-run # preview without applying
ciak knowledge install <TEMPLATE> --verbose # detailed output
Knowledge file format
The .ciak/knowledge.json file contains three sections:
{
"terms": [
{
"id": "jwt",
"term": "JWT",
"definition": "JSON Web Token - a compact token format for authentication",
"category": "security",
"synonyms": ["json web token", "bearer token"],
"related_terms": ["OAuth", "authentication"],
"programming_languages": ["typescript", "python"],
"confidence": 1.0
}
],
"acronyms": [
{
"id": "api",
"acronym": "API",
"expansion": "Application Programming Interface",
"context": "web development",
"domain": "general",
"confidence": 1.0,
"usage_frequency": "high"
}
],
"synonyms": [
{
"id": "auth-synonym",
"source_term": "authenticate",
"target_term": "login",
"context": "user authentication",
"confidence": 0.9,
"mapping_type": "bidirectional",
"domain": "security"
}
]
}
Workflow
- Initialize —
ciak knowledge initto create the template. - Edit — add your domain terms, acronyms, and synonyms to
.ciak/knowledge.json. - Sync —
ciak sync knowledgeto import entries into the database. - Verify —
ciak knowledge listto confirm entries are loaded.
Input and output examples
Representative CLI output (truncated; exact formatting may vary by version):
Initialize the knowledge template
Input
ciak knowledge init
Output
Created knowledge template: .ciak/knowledge.json
✓ Edit the file, then run: ciak sync knowledge
List entries
Input
ciak knowledge list --source user
Output
Knowledge entries (source=user)
TERM TYPE CATEGORY CONFIDENCE
JWT technical_term security 1.00
API acronym general 1.00
login<->auth synonym security 0.90
Export entries
Input
ciak knowledge export --user-only
Output
Exported 27 user-defined entries to stdout
Related concepts
sync—ciak sync knowledgeimports the knowledge file into the database.- MCP Tools — search_knowledge — query the knowledge base via MCP.