Configuration
CIAK stores its configuration in the .ciak/ directory inside your project. This page documents the configuration files and their options.
Project Configuration — .ciak/config.toml
Created by ciak init, this file controls project settings, file monitoring, database, and parser behavior.
[project]
[project]
name = "my-project"
languages = [
"python",
"javascript",
"typescript",
"rust",
]
| Key | Type | Description |
|---|---|---|
name | string | Project name (used for identification) |
languages | string[] | Languages to enable for parsing |
[file_monitor]
Controls which files are watched and how changes are detected.
[file_monitor]
ignore_patterns = [
".git/**",
"node_modules/**",
"**/target/**",
"**/__pycache__/**",
"**/dist/**",
"**/.venv/**",
]
debounce_ms = 300
recursive = true
| Key | Type | Default | Description |
|---|---|---|---|
ignore_patterns | string[] | (see above) | Glob patterns for files/directories to ignore |
debounce_ms | integer | 300 | Milliseconds to wait before processing file changes |
recursive | boolean | true | Watch subdirectories recursively |
[database]
[database]
path = ".ciak/database.db"
| Key | Type | Default | Description |
|---|---|---|---|
path | string | .ciak/database.db | Path to the SQLite database file |
[parser]
[parser]
max_file_size = 1048576 # 1MB
| Key | Type | Default | Description |
|---|---|---|---|
max_file_size | integer | 1048576 | Maximum file size in bytes to parse (default: 1 MB) |
[ranking]
Controls path-based ranking priors for unified symbol search. By default, CIAK slightly boosts implementation paths and demotes test/spec/sample paths.
[ranking]
demote_patterns = [
"**/test/**",
"**/tests/**",
"**/__tests__/**",
"**/*.spec.*",
"**/*.test.*",
"**/samples/**",
"**/examples/**",
"**/fixtures/**",
"**/mocks/**",
"**/__mocks__/**",
]
demote_factor = 0.4
boost_patterns = [
"src/**",
"lib/**",
"packages/*/src/**",
]
boost_factor = 1.2
| Key | Type | Default | Description |
|---|---|---|---|
demote_patterns | string[] | (see above) | Glob patterns to demote in search scoring |
demote_factor | number | 0.4 | Multiplier for demoted paths (must be between 0.0 and 1.0) |
boost_patterns | string[] | (see above) | Glob patterns to boost in search scoring |
boost_factor | number | 1.2 | Multiplier for boosted paths (must be >= 1.0) |
Notes:
- If
demote_patterns = [], demotion is disabled. - If
boost_patterns = [], boosting is disabled. - If both lists are empty, path-prior ranking is neutral.
Knowledge Base — .ciak/knowledge.json
Created by ciak knowledge init, this file defines domain-specific terms, acronyms, and synonyms. Import it into the database with ciak sync knowledge.
Structure
{
"terms": [...],
"acronyms": [...],
"synonyms": [...]
}
Terms
Technical terms with definitions and metadata:
{
"id": "unique-id",
"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
}
| Field | Type | Required | Description |
|---|---|---|---|
id | string | ✅ | Unique identifier |
term | string | ✅ | The technical term |
definition | string | ✅ | Human-readable definition |
category | string | — | Category for grouping (e.g., "security", "database") |
synonyms | string[] | — | Alternative names for this term |
related_terms | string[] | — | Related concepts |
programming_languages | string[] | — | Languages where this term is relevant |
confidence | number | — | Confidence score 0.0–1.0 (default: 1.0) |
Acronyms
Acronym expansions:
{
"id": "unique-id",
"acronym": "API",
"expansion": "Application Programming Interface",
"context": "web development",
"domain": "general",
"confidence": 1.0,
"usage_frequency": "high"
}
| Field | Type | Required | Description |
|---|---|---|---|
id | string | ✅ | Unique identifier |
acronym | string | ✅ | The acronym |
expansion | string | ✅ | What the acronym stands for |
context | string | — | Usage context |
domain | string | — | Domain (e.g., "general", "security") |
confidence | number | — | Confidence score 0.0–1.0 |
usage_frequency | string | — | How often it's used: "high", "medium", "low" |
Synonyms
Bidirectional term mappings:
{
"id": "unique-id",
"source_term": "authenticate",
"target_term": "login",
"context": "user authentication",
"confidence": 0.9,
"mapping_type": "bidirectional",
"domain": "security"
}
| Field | Type | Required | Description |
|---|---|---|---|
id | string | ✅ | Unique identifier |
source_term | string | ✅ | First term |
target_term | string | ✅ | Second term |
context | string | — | Usage context |
confidence | number | — | Confidence score 0.0–1.0 |
mapping_type | string | — | bidirectional or unidirectional |
domain | string | — | Domain category |
License File — ~/.ciak/license
Stored globally at ~/.ciak/license, this JSON file is created by ciak license activate and contains your subscription tier, user ID, expiration date, and enabled features. It is used automatically by cloud sync and feature gating.
See license for details.
Environment Variables
These environment variables can override configuration:
| Variable | Description |
|---|---|
CIAK_DB_PATH | Override the database path |
EMBEDDING_MODEL_PATH | Override the embedding model path |
QDRANT_URL | Qdrant server URL for cloud mode (default: http://localhost:6333) |
SYNC_WORKER_URL | Sync worker URL for cloud mode (default: http://localhost:8090) |