Skip to content

onbehalf 0.2.0

Latest

Choose a tag to compare

@github-actions github-actions released this 12 Oct 17:48
· 20 commits to main since this release
5e8add3

This version adds Claude Code and Codex as AI harnesses. The operator
selects one AI harness for each host.

Shared stack

  • A stack source can have models.json as its model catalog, and
    AGENTS.md and skills/ at its root. Then the stack source does not
    depend on one AI harness. onbehalf writes the gateway providers of
    OpenCode from models.json. A stack source with
    opencode/opencode.json and no models.json works as before.

Model gateway

  • onbehalf init --harness NAME selects the AI harness of the host. The
    value is in onbehalf.conf. A host without the value uses OpenCode.
  • init, doctor and health check that the gateway serves the API of
    the AI harness. The check sends no model request.
  • doctor --model-check, status --model-check and the health probe
    send their request with the API of the AI harness.
  • sudo onbehalf harness NAME changes the AI harness of a host. It
    checks the command, the shared stack and the gateway first. Then it
    updates the routes of each gateway key and stops the runtimes of the
    old AI harness. It removes the links of the old AI harness and gives
    each user the links of the new AI harness. Each user keeps the gateway
    key, the personal settings and the private state.

Claude Code

  • onbehalf init --harness claude selects Claude Code. The stack source
    must have models.json.
  • stack install writes the managed settings of Claude Code from
    models.json: the gateway, the personal gateway key, the model catalog
    and the default model. /etc/claude-code/managed-settings.json is a
    link to the current release. Team settings go in
    claude/managed-settings.json of the stack source.
  • Each user gets links in ~/.claude: CLAUDE.md to the shared
    AGENTS.md, and each shared skill, custom agent and command.
  • A user can set a different default model in ~/.claude/settings.json.
  • doctor and status warn about ~/.claude/.credentials.json.
  • Claude Code has no service. onbehalf restart tells the user to start
    a new session.

Codex

  • onbehalf init --harness codex selects Codex. The stack source must
    have models.json.
  • stack install writes the system configuration of Codex from
    models.json: the gateway provider, the personal gateway key and the
    default model. /etc/codex/config.toml is a link to the current
    release. Team settings go in codex/config.toml of the stack source.
  • Each user gets links in ~/.codex: AGENTS.md to the shared
    AGENTS.md, and each shared skill.
  • A user can set a different default model in ~/.codex/config.toml.
  • doctor and status warn about ~/.codex/auth.json.
  • Codex has no service. onbehalf restart tells the user to start a new
    session.
  • The gateway key of a user on a Codex host permits only the responses
    API.

Docs

  • The guides give the setup and the use of each AI harness. The operator
    guide has a section about a change of the AI harness.
  • examples/stack is now a stack source with models.json. It works for
    each AI harness. In OpenCode, its provider of the OpenAI API has the
    name onbehalf, not onbehalf-openai. A stack source that you copied
    from version 0.1.0 does not change.
  • Recorded casts show the operator setup, the first login of a user and
    the report. The README, the site and the guides show them. make demo
    records them again from a clean test host. See demo/README.md.

Upgrade

Get the files of this version and run the installer again. A host keeps
OpenCode as its AI harness, and its stack source keeps its function. Then
run sudo onbehalf doctor. To use Claude Code or Codex, see the
operator guide.