Skip to content
Apothem
How-to guides

Edit the profile

Change the shared profile and re-materialize every installed harness.

Goal: change a value in the shared profile and push it into every harness you have installed.

Prerequisites

  • The apothem CLI on your PATH (or the self-contained form: prefix with PYTHONPATH="$HOME/.apothem/src" and run python -m apothem, or use npx @ahmed-g-gad/apothem).
  • A profile at ~/.config/apothem/profile.yaml. Create one with apothem profile init if it is missing.

The profile shape

The profile is a single YAML document. Its top-level keys:

  • identity (required) — name, plus optional role, email, website, github.
  • preferences — language, style (concise / verbose / balanced), formatter, test_framework.
  • rules — a list of extra rule strings shared with capable harnesses.
  • seriousness — one of EXPLORING, PERSONAL_USE, SHARED, PUBLIC_LAUNCH.
  • enforcement — opt-in toggles (sprints, agent_teams, multitasking, continuous_execution, learning_loop), every flag default-off.
  • harnesses — per-harness overrides keyed by harness id.
  • exclude_harnesses — harness ids skipped by batch (--harness all) commands.
  • mcp_servers — MCP server definitions keyed by server name.
  • agent_mcp_servers — per helper name, the MCP servers that helper may call (see Give a helper access to MCP servers). Empty by default, so no helper reaches an MCP tool.
  • workspace — where Apothem keeps its shared working directory (directory_name, scope).
  • schema_version — optional profile-schema version; a profile without it is read as version 1.

Every field is listed in Profile fields.

Steps

  1. Inspect the current profile:

    apothem profile show
  2. Edit it. Open it in your system editor:

    apothem profile edit

    Or set a single dotted key from the command line. The value is stored literally (except true/false and explicit [..]/{..} input, which are parsed) and the profile is validated against the schema before writing — an invalid set is refused and the profile on disk is unchanged:

    apothem profile set seriousness SHARED
    apothem profile set identity.name "Ada Lovelace"
  3. Re-materialize the harnesses so the change reaches their native config. For a user-scope harness:

    apothem update --harness claude-code

    For a project-scope harness, pass the project root; use all to refresh every installed harness:

    apothem update --harness cursor --project /path/to/project
    apothem update --harness all --project /path/to/project

Verify

apothem profile show
apothem verify --harness all

profile show reflects your edit.

apothem verify --harness all checks every registered harness except those the profile's exclude_harnesses lists, so it exits non-zero unless all of the others are installed. Project-scope harnesses also need --project PATH; without it the batch stops with a project.required error. To check only the harness you updated, run the same command with that harness's name:

apothem verify --harness <name>

For a whole-system view that tolerates harnesses you have not installed, run apothem doctor.

  • Add a harness to bring a new harness under profile control before re-materializing.
  • Updating covers upgrading the engine alongside the re-materialize step.

On this page