Skip to content

Integrate coder/boundary with AI modules #457

Description

@bcpeinhardt

We want the AI modules in the registry to have the option to run with coder/boundary in front.

Activity

  1. self-assigned this
    on Oct 6, 2025
  2. matifali commented on Oct 6, 2025

    @matifali
    Member

    @bcpeinhardt, can you elaborate on the issue with your plan on how to do that?

    I think there are two options

    1. Make a new coder/boundary module that we use in the AgentAPI module
    2. Make boundary part of the agentAPI module.
  3. added theissue type on Oct 7, 2025
  4. shanewhite97 commented on Mar 2, 2026

    @shanewhite97
    Contributor

    +1 on this — we're running multiple AI agents (Codex CLI, Roo, Cline) alongside Claude Code in our Coder templates and need boundary support across all of them.

    Currently, Claude Code is the only module with native enable_boundary = true support. For everything else, the workaround is to skip the agent module entirely, use the agentapi module directly, and write custom install/start scripts that inject coder boundary into the launch chain. It works, but it's a lot of unnecessary boilerplate for what should be a simple toggle.

    We're specifically using landjail mode (Landlock V4) since our workspaces run on kernel 6.12+ and we want to avoid the Docker seccomp/capability requirements of nsjail. Landjail is trivial to configure (jail_type: landjail in config.yaml), but the lack of module-level support means every non-Claude agent needs a custom Terraform setup.

    Our preferred solution: Option 2 from @matifali's comment — bake boundary support into the agentapi module. Since all AI modules (Codex, Goose, Aider, Mux) already use agentapi under the hood, this would give every module enable_boundary support without per-module changes. The agentapi start script would just need to optionally wrap the agent command with coder boundary -- (same pattern Claude Code's start.sh already uses).

    Key things the implementation would need:

    • enable_boundary variable (bool, default false)
    • jail_type variable (string, default "nsjail", options: "nsjail"/"landjail")
    • proxy_port variable (important for running multiple bounded agents concurrently — each needs a different port)
    • The existing config.yaml mount pattern from ~/.config/coder_boundary/ for allowlist management
  5. shanewhite97 commented on Mar 2, 2026

    @shanewhite97
    Contributor

    @matifali I know I haven't quite followed the full contributing process. But just wanted to start mocking something up:
    #780

    If you are happy with the approach I will tidy it up and do it properly, if not, let me know what you think might be better 😄

    2 things I need to check, is firstly whether boundary should wrap around agent api, or vice versa (like Claude Code Module does currently) and B I need to actually finish the logic in the Codex module

  6. matifali commented on Mar 2, 2026

    @matifali
    Member

    @shanewhite97 Hi there. Please go ahead, and we will be happy to review the contribution.
    Thanks for the contribution. The reason we initially used Claude Code was that it is the most widely used.

  7. shanewhite97 commented on Mar 2, 2026

    @shanewhite97
    Contributor

    @matifali Thanks for the fast response. Since you are happy with the proposed approach I will make sure it's done a bit more properly and follow the appropriate contribution guide. Ta

  8. added a commit that references this issue on Mar 11, 2026
    2ee14fd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions