Skip to content
Configuration

Configuration

kleidi-task uses a layered configuration system. Project config overrides global config.

Config files

FileScopeDescription
~/.tasks/config.jsonGlobalApplies to all projects
<project>/.tasks/config.jsonProjectOverrides global for this project

Global config

{
  "port": 7842,
  "default_priority": 0,
  "default_project": "my-project"
}
OptionDefaultDescription
port7842HTTP server port for klt serve
default_priority0Default priority for new tasks
default_project""Default project slug for MCP when not in a project directory

Project config (via Settings UI)

Project-level settings are stored in the project database and managed through the web UI at /p/{slug}/settings:

OptionDefaultDescription
Default priority0Default priority for new tasks in this project
Default task typetaskDefault type when creating tasks
Auto-archive days0Auto-archive completed tasks after N days (0 = disabled)

These settings can also be edited via the REST API:

curl -X POST http://localhost:7842/p/my-project/settings/config \
  -H "Content-Type: application/json" \
  -d '{"default_priority": 3, "default_type": "task", "auto_archive_days": 30}'

Custom task types

Custom types beyond the built-in task/bug/feature/hotfix can be created via the Workflows page in the web UI. Each custom type gets its own workflow definition with configurable phases, colors, and title prefixes.

See workflows.md for details.

Data locations

PathContent
~/.tasks/registry.dbGlobal registry (projects, users)
~/.tasks/config.jsonGlobal configuration
<project>/.tasks/tasks.dbProject task database
<project>/.tasks/config.jsonProject configuration
<project>/.tasks/hooks.jsonProject script hooks