Skip to content

feat(cli): add --skill-id option and replace --json with --format json#170

Merged
spillai merged 1 commit intomainfrom
devin/1774402305-cli-skill-id-format-json
Mar 30, 2026
Merged

feat(cli): add --skill-id option and replace --json with --format json#170
spillai merged 1 commit intomainfrom
devin/1774402305-cli-skill-id-format-json

Conversation

@devin-ai-integration
Copy link
Copy Markdown
Contributor

Summary

Two CLI changes to the vlmrun chat command:

  1. --skill-id: New repeatable option for referencing server-side skills as <skill-name>:<version> (e.g. my-skill:latest, my-skill:3). If no version is provided, defaults to latest. Mutually exclusive with --skill (inline skill directories).

  2. --format json replaces --json/-j: Output format is now specified via --format/-f with json as the only currently supported value. This is a breaking change — the old --json flag is removed with no backward-compatible alias.

Help text and examples updated to document both changes.

Review & Testing Checklist for Human

  • Breaking change acknowledgment: --json / -j is fully removed. Any existing scripts, CI pipelines, or docs referencing vlmrun chat --json will break. Verify this is intentional and no deprecation period is needed.
  • No tests for --skill-id parsing logic: The <name>:<version> splitting (rsplit(":", 1)) and the fallback to version="latest" when no colon is present have no dedicated unit tests. Consider whether edge cases (empty name, empty version like skill:, multiple colons) need coverage.
  • No test for mutual exclusivity: Passing both --skill and --skill-id should error, but this path is untested.
  • Manual test: Run vlmrun chat "hello" --skill-id my-skill:latest and vlmrun chat "hello" --format json --no-stream to verify both features work end-to-end against the API.

Notes

  • The --format option is a string rather than an enum, so it's extensible for future formats (e.g. yaml, csv) but currently only accepts json (case-insensitive).
  • Skill ID references are constructed as AgentSkill(type="skill_reference", skill_id=<name>, version=<version>) and serialized into the extra_body.skills payload, same path as inline skills.

Link to Devin session: https://app.devin.ai/sessions/d40920dcf04246b7af4636b4fa6f5a65
Requested by: @spillai

- Add --skill-id flag for server-side skill references as <name>:<version>
- --skill and --skill-id are mutually exclusive
- Replace --json/-j with --format/-f json for output format selection
- Update help text and examples
- Update tests to match new CLI options

Co-Authored-By: Sudeep Pillai <sudeep.pillai@gmail.com>
@devin-ai-integration
Copy link
Copy Markdown
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@spillai spillai merged commit bbaee5e into main Mar 30, 2026
4 checks passed
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.

1 participant