feat: ir cowork — InferRoute's everyday-work surface, powered by goose - #16
Merged
Conversation
Adds a config-only integration with goose (block/goose, Apache-2.0) — the
open-source agent with a desktop app + CLI — as InferRoute's point-and-click
surface for non-terminal work, alongside `ir` (Claude Code).
- `ir cowork` wires goose to InferRoute (provider=anthropic, your key, routing
through the on-device recorder daemon when present, else the cloud) and
launches it — the desktop app if installed, else the CLI. Flags: --cli,
--configure-only, --model.
- Config-only, no fork: owns a small set of goose config/secret keys
(config.yaml + secrets.yaml, mode 600, + GOOSE_DISABLE_KEYRING on Linux) and
re-asserts them every launch, so goose updates can't drift it. Merges
non-destructively (preserves the user's other goose settings). Tags traffic
with x-inferroute-client: cowork for dashboard attribution.
- `ir setup` now offers it as an opt-in final step ("a desktop app powered by
goose"); `ir help` documents it; docs/cowork.md covers usage + manual wiring.
- Adds pyyaml dependency (reads/merges goose's YAML config).
Version bump + PyPI release left to a separate step.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds
ir cowork— a config-only integration with goose (Apache-2.0), the open-source agent with a desktop app + CLI — as InferRoute's point-and-click surface for non-terminal work, alongsideir(Claude Code). This is the "A + B" of the client-surface plan: docs + a CLI subcommand.ir cowork:anthropic, your saved key, routing through the on-device recorder daemon when it's up, else the cloud) and launches it — the desktop app if installed, else the CLI;--cli,--configure-only,--model NAME;config.yaml+secrets.yaml0600, +GOOSE_DISABLE_KEYRINGon Linux), merges them non-destructively, and re-asserts them every launch so goose updates can't drift it;x-inferroute-client: coworkfor dashboard attribution.Also:
ir setupnow offers it as an opt-in final step ("a desktop app powered by goose");ir helpdocuments it;docs/cowork.mdcovers usage + manual wiring;pyyaml(to read/merge goose's YAML).Testing
configure()verified: writes the rightconfig.yaml/secrets.yaml(mode 600)/environment.d, resolves model aliases (glm→zai-org/GLM-5.1-TEE), and is idempotent + non-destructive (preserves existing goose keys liketheme).ir cowork --help,--configure-only), the no-login guard fires, and their setupprompt path imports/skips cleanly.Notes
docs/cowork.mdnotes this.🤖 Generated with Claude Code