Skip to content

Board profiles

A board profile is a named alternate ladder of per-column strategy settings. One task can run Planning in Opus at xhigh and Merge in Sonnet at high while another task rides a cheaper ladder over the same board. Column identity - which columns exist, their names, order, roles, colors, and icons - stays singular; a profile scopes only the strategy: agent, model, effort, permission mode, auto-spawn, handoff, session target, spawn strategy, and plan-exit target. Automations are not part of a profile: every profile shares the column’s list, so a profile changes what a column’s agent runs with, never what the column does.

Profiles are authored in the Column Manager. The column rail carries a Profile switcher at its head: Default, or any named profile, with contextual actions - New, Duplicate, Rename, and Delete (Default offers only New). Selecting a profile switches every column editor below to that profile’s values.

While a profile is selected, column structure is locked - no adding, reordering, or deleting columns - and so is each column’s automations list. Structure and automations belong to the board itself; a profile only changes what each column does to a session.

The Column Manager dialog with the Code Review column selected: its name, icon, and color, Codex CLI on gpt-5.5 as the agent that starts when a task enters it, and empty automation slots for entering and leaving the column. v0.46.0 The real app on a sample install. The projects and terminals are recordings, connected to nothing, so click anything.

A profile entry is sparse, with three states per field:

StateMeaning
Field absentInherit the column’s own setting
Field explicitly clearedUse the agent default, even where the column pins a value
Field setUse the profile’s value

The New Task and task-edit dialogs ask How this task runs with two mutually exclusive cards:

  • Column Settings - each column applies its own settings as the task moves. This card holds a Profile dropdown: Default, or any named board profile. The dropdown is disabled until the board has at least one profile, so the concept stays discoverable without a second creation path (profiles are created in the Column Manager).
  • Agent Override - agent, model, effort, and permission mode pinned for the whole task, ignoring column settings. An edit pencil beside the Agent field jumps to Settings > Agent for the project’s defaults.

Picking one card clears the other - a task never carries both a profile and override pins. The choice persists with the task, and the running session’s context bar shows a profile pill you can switch mid-task, alongside the model and effort pickers.

Profiles live in the team-shared kangentic.json, never in kangentic.local.json - a task’s saved profile choice must resolve on every teammate’s machine. Within a profile, column entries reference columns so that copying a profile between projects with the same column names works, and the plan-exit target is stored by column name for the same reason.

Editing a profile propagates live, the same way a direct column edit does. A running session in an affected column whose model or effort the edit changed is suspended and resumed with the new flags, which ends its turn in progress, and it comes back idle. Deleting a column through the Column Manager or MCP also prunes it from every profile; editing kangentic.json by hand does not prune, so a hand-removed column can leave dangling profile entries until the next in-app edit.

The MCP server exposes profiles to running agents: kangentic_list_board_profiles, kangentic_create_board_profile, kangentic_update_board_profile, and kangentic_delete_board_profile, plus a profile parameter on kangentic_create_task and kangentic_update_task - so a planning agent can set up a cheap review ladder and file tasks that ride it, without you opening the Column Manager.

Kangentic is free and open source. A star helps other people find it.

Star on GitHub