-
Notifications
You must be signed in to change notification settings - Fork 136
aitools: add skills command for coding agents #4125
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
Commit: e7aa354
25 interesting tests: 8 RECOVERED, 5 KNOWN, 5 SKIP, 5 flaky, 2 FAIL
Top 50 slowest tests (at least 2 minutes):
|
4a6039e to
9448fc0
Compare
Add `databricks experimental aitools skills` subcommand: - `skills list` - list available skills - `skills install` - install all skills to ~/.claude/skills/ Includes databricks-apps skill with reference docs synced from the appkit template.
1794780 to
9550bfa
Compare
9550bfa to
b6254d8
Compare
b6254d8 to
67a2c80
Compare
67a2c80 to
e865a15
Compare
Skills now fetched from databricks/databricks-agent-skills repo.
e865a15 to
ef1b64b
Compare
- Support 8 agents: Claude Code, Cursor, Windsurf, Cline, Roo Code, Codex CLI, Amp, OpenCode - Auto-detect installed agents and print which were found - Use symlinks when multiple agents detected (canonical location: ~/.databricks/agent-skills/) - Fallback to copy if symlink fails (Windows without admin) - Support GitHub token from env vars or gh CLI for private repo access Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
5591161 to
882c772
Compare
- Create agents.Agent struct with detection, skills dir, and optional MCP install - Supported agents: Claude Code, Cursor, Codex CLI, OpenCode, GitHub Copilot, Antigravity - Update skills.go and install.go to use shared registry - Remove duplicated detection logic from claude.go and cursor.go Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
882c772 to
a6dcea6
Compare
| // use GitHub API for private repo support | ||
| url := fmt.Sprintf("https://api.github.com/repos/%s/%s/contents/%s/%s/%s?ref=%s", | ||
| skillsRepoOwner, skillsRepoName, skillsRepoPath, skillName, filePath, getSkillsBranch()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we still use the embedded version of the skills by default? We've had a lot of feedback from enterprise customers in the past about the CLI accessing the open internet. Ideally the CLI works in internet-restricted environments out of the box!
Using the embedded skills also helps coversion the skills so they're always 100% compatible with the present CLI.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
cc @fjakobs
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@lennartkats-db Great catch on the restricted mode. In my understanding, we can bundle a specific tag of Skills repo - will it work?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes there should be some way to do that. But that doesn't have to be in the V1 of this. I'd just want to go there.
Honestly for the V1 I'd mostly want parity in terms of capabilities of the skills, i.e. have a single "system prompt" and not just apps. That seems like something that's relatively to add again as an afterthought.
| useSymlinks := len(detectedAgents) > 1 | ||
| var canonicalDir string | ||
|
|
||
| if useSymlinks { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are you always relying on symlinks here? We should have some fallback for Windows
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
will fix
| ) | ||
|
|
||
| // Agent defines a coding agent that can have skills installed and optionally MCP server. | ||
| type Agent struct { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great to have this interface!!
| if len(detectedAgents) == 0 { | ||
| cmdio.LogString(ctx, color.YellowString("No supported coding agents detected.")) | ||
| cmdio.LogString(ctx, "") | ||
| cmdio.LogString(ctx, "Supported agents: Claude Code, Cursor, Codex CLI, OpenCode, GitHub Copilot, Antigravity") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Woo!
| } | ||
|
|
||
| // getHomeDir returns home directory, handling Windows USERPROFILE. | ||
| func getHomeDir() (string, error) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There should be an existing function like this already
|
|
||
| const ( | ||
| skillsRepoOwner = "databricks" | ||
| skillsRepoName = "databricks-agent-skills" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are we ready to switch to this yet? We don't have any Lakeflow skills yet and I don't think it has an equivalent to the databricks_explore tool?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For Apps, migrating MCP => Skill is a top priority atm. As for the databricks_explore, we can migrate to aitools command, so the Lakeflow skills could use it (Not sure if Apps will use it or just databricks skill instead).
Changes
Add
databricks experimental aitools skillssubcommand to install Agent Skills for coding agents:skills list- list available skills from the databricks-agent-skills reposkills install [skill-name]- install skills to detected coding agentsMulti-agent support
Automatically detects and installs skills for:
~/.claude/skills/)~/.cursor/skills/)~/.codex/skills/)~/.config/opencode/skills/)~/.copilot/skills/)~/.gemini/antigravity/global_skills/)When multiple agents are detected, skills are installed to a canonical location (
~/.databricks/agent-skills/) and symlinked to each agent to avoid duplication.Refactored agent registry
Unified agent detection logic in
lib/agents/agents.go- shared between skills installation and MCP installation commands.Why
Skills are simpler than MCP for providing domain-specific guidance to AI agents. While MCP requires a running server, skills are static documentation that agents load on demand. This gives users a lightweight way to get Databricks-specific guidance across all major coding agents.
Tests
Manual testing: