Skip to content

feat(start): add --skip-unregistered to launch despite unregistered skills - #436

Open
nhuelstng wants to merge 5 commits into
mainfrom
feat/skip-unregistered-skills
Open

nhuelstng wants to merge 5 commits into
mainfrom
feat/skip-unregistered-skills

Conversation

@nhuelstng

Copy link
Copy Markdown
Contributor

Issue: Closes #435

What

  • New omac start --skip-unregistered: starts despite unregistered skills, with a warning naming them.
  • Skipped skills run without sidecar, secrets or install script, and are not registered.
  • Each skipped skill is written to the audit log (route.state, skipped-unregistered).

Why

Today the only ways past the refusal are registering the skill or deleting it (see #435).

How

  • internal/cli/start.go: the existing refusal is bypassed only when the flag is set; the audit events are emitted after session.start.
  • Safety rests on existing behaviour: only registered skills get a sidecar, and unapproved skill folders are hidden by the built-in sandbox (fix(skills): hide skill dirs whose SKILL.md is not host-approved #395). On other backends the existing notice says the skill stays visible, and the new warning says so too.

Verification

Follow-up

None planned.

🤖 Generated with Claude Code

@nhuelstng

Copy link
Copy Markdown
Contributor Author

Verification update: ran the built binary against a real workdir on Linux (bwrap) with an unregistered skill app-probe (HOME and XDG dirs isolated).

  • Without the flag: refused, exit 4, inner command did not run.
  • With --skip-unregistered: warning printed, session started, inner command ran.
  • Inside the sandbox .opencode/skills/app-probe/ was an empty mask: cat .../SKILL.md failed with "No such file or directory". omac printed "Hidden from this session" for the skill.
  • No sidecar was started and the skill was not registered.
  • Audit log contained {"type":"route.state","skill":"app-probe","state":"skipped-unregistered",...}.

Not covered: macOS, non-native sandbox backends, --no-sandbox.

@nhuelstng
nhuelstng force-pushed the feat/skip-unregistered-skills branch from 1c60285 to 615925a Compare October 28, 2026 17:11
nhuelstng and others added 4 commits October 28, 2026 18:12
…kills

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Signed-off-by: Niclas Hülsmann <niclas.huelsmann@tngtech.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Signed-off-by: Niclas Hülsmann <niclas.huelsmann@tngtech.com>
…ility

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Signed-off-by: Niclas Hülsmann <niclas.huelsmann@tngtech.com>
…ered

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Signed-off-by: Niclas Hülsmann <niclas.huelsmann@tngtech.com>
@nhuelstng
nhuelstng force-pushed the feat/skip-unregistered-skills branch from 615925a to b3c69be Compare October 28, 2026 17:15
@nhuelstng
nhuelstng requested a review from NoRiceToday October 28, 2026 17:15
macOS has no /bin/true, so the new --skip-unregistered test exited 7.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Signed-off-by: Niclas Hülsmann <niclas.huelsmann@tngtech.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

omac start: no way to launch without registering or removing an unregistered skill

1 participant