What is init?
The init command creates a new CIAK project in a directory. It sets up the .ciak/ folder with a configuration file and an empty database, preparing the project for scanning.
ciak init [OPTIONS] [PATH]
When to use init
Run ciak init once when you first start using CIAK on a project. You do not need to run it again unless you want to reinitialize the project from scratch.
Behavior and options
| Option | Description |
|---|---|
[PATH] | Project directory (default: current directory .) |
-n, --name <NAME> | Project name (default: directory name) |
-l, --languages <LANG,...> | Comma-separated list of languages to enable (default: python,javascript,typescript,rust) |
What it creates
.ciak/config.toml— project configuration file with project name, enabled languages, file monitor settings, database path, and parser configuration..ciak/database.db— empty database file, ready to be populated byciak scan.
Examples
Example 1 — Initialize in the current directory
cd /path/to/your/code
ciak init
Uses the directory name as the project name and enables default languages.
Example 2 — Initialize with a custom name and languages
ciak init --name "my-api" --languages python,go
Example 3 — Initialize a specific directory
ciak init /path/to/another/project --name "frontend"
Input and output example
Representative CLI output (truncated; exact formatting may vary by version):
Input
ciak init --name "my-api" --languages python,go
Output
Initializing CIAK project in: /path/to/project
Project name: my-api
Languages: python, go
Created .ciak/config.toml
Created .ciak/database.db
✓ CIAK project initialized successfully
What to do next
After initializing, scan the project to populate the database:
ciak scan --embeddings
Related concepts
scan— indexes the project after initialization.- Configuration — details on
.ciak/config.toml.