Skip to main content

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​

OptionDescription
[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 by ciak 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
  • scan — indexes the project after initialization.
  • Configuration — details on .ciak/config.toml.