Repository navigation
Add Gemini CLI to databricks aitools install - #6204
Merged
Merged
Conversation
Add Pi as a skills-only coding agent: install and update now discover Pi via ~/.pi/agent (honoring PI_CODING_AGENT_DIR) and write Databricks agent skills into its skills directory, both globally and project-scoped (.pi/skills). This also lands the shared project-scope plumbing the Goose and Gemini agents build on: SupportedNames/SkillsOnlyNames derive the help text from the registry, and update --scope project picks up project-local skill agents via DetectProjectInstalled. Co-authored-by: Isaac
Add Goose as a skills-only coding agent, stacked on the Pi change. Install and update discover Goose via its config directory (honoring GOOSE_PATH_ROOT, XDG_CONFIG_HOME, and the legacy Windows Block path) and write Databricks agent skills into its skills directory, both globally and project-scoped (.goose/skills). Co-authored-by: Isaac
Add Gemini CLI as a skills-only coding agent, stacked on the Goose change. Install and update discover Gemini via ~/.gemini (honoring GEMINI_CLI_HOME) and write Databricks agent skills into its skills directory, both globally and project-scoped (.gemini/skills). Gemini shares its ~/.gemini config directory with Antigravity, so bare-directory detection would report Gemini installed whenever only Antigravity is present. This adds a DetectFile marker (projects.json, which Gemini CLI writes on real use and Antigravity does not) so detection keys on Gemini's own state. Co-authored-by: Isaac
Add Gemini CLI as a skills-only coding agent, stacked on the Pi change. Install and update discover Gemini via ~/.gemini (honoring GEMINI_CLI_HOME) and write Databricks agent skills into its skills directory, both globally and project-scoped (.gemini/skills). Gemini shares its ~/.gemini config directory with Antigravity, so bare-directory detection would report Gemini installed whenever only Antigravity is present. This adds a DetectFile marker (projects.json, which Gemini CLI writes on real use and Antigravity does not) so detection keys on Gemini-specific state. Co-authored-by: Isaac
lennartkats-db
requested review from
janniklasrose,
parthban-db and
renaudhartert-db
August 7, 2026 16:47
Collaborator
Integration test reportCommit: 92aa590
8 interesting tests: 4 RECOVERED, 4 SKIP
Top 6 slowest tests (at least 2 minutes):
|
renaudhartert-db
approved these changes
Aug 10, 2026
renaudhartert-db
left a comment
Contributor
There was a problem hiding this comment.
LGTM modulo some comment tweaks.
1 task done
# Conflicts: # cmd/aitools/install_test.go # cmd/aitools/telemetry.go # cmd/aitools/update_test.go # libs/aitools/agents/agents.go # libs/aitools/agents/agents_test.go # libs/aitools/agents/detect_test.go # libs/aitools/agents/registry_test.go # libs/aitools/installer/installer_test.go # libs/telemetry/protos/aitools_install.go
# Conflicts: # cmd/aitools/install_test.go # cmd/aitools/telemetry.go # cmd/aitools/update.go # cmd/aitools/update_test.go # libs/aitools/agents/agents.go # libs/aitools/agents/agents_test.go # libs/aitools/agents/detect_test.go # libs/aitools/agents/registry_test.go # libs/aitools/installer/installer_test.go # libs/telemetry/protos/aitools_install.go
varundeepsaini
pushed a commit
to varundeepsaini/cli
that referenced
this pull request
Aug 17, 2026
## Changes - Add Goose as a supported AI tools agent - Configure Goose settings and skill discovery/update support - Add installation and test coverage - [x] Stacked on top of databricks#6204: target branch must be set to `main` before merging ## Tests - `go test ./libs/aitools/agents ./cmd/aitools` - Verified end to end against a live model: after databricks aitools install, Goose loads the databricks-core skill in a real session.
janniklasrose
pushed a commit
that referenced
this pull request
Sep 15, 2026
## Changes - Add Goose as a supported AI tools agent - Configure Goose settings and skill discovery/update support - Add installation and test coverage - [x] Stacked on top of #6204: target branch must be set to `main` before merging ## Tests - `go test ./libs/aitools/agents ./cmd/aitools` - Verified end to end against a live model: after databricks aitools install, Goose loads the databricks-core skill in a real session.
antonyprasad-db
added a commit
to antonyprasad-db/cli
that referenced
this pull request
Sep 28, 2026
Kiro reads agent skills from ~/.kiro/skills (user-level) and <workspace>/.kiro/skills (workspace-level), each skill a directory holding a SKILL.md. Its loader requires frontmatter name and description, rejects a name longer than 64 characters or a description longer than 1024, and requires the name to match its directory. That is already what this repo emits, so Kiro needs only a registry entry. Verified on macOS with Kiro 1.0.182: all 29 stable skills written to ~/.kiro/skills are accepted by Kiro's loader. The only rejections in that directory were two deliberately malformed probes and two unrelated pre-existing skills whose frontmatter name does not match their directory. Kiro is IDE-first, so the `kiro` binary is frequently absent from PATH. Detection then falls back to ConfigDir and reports files-only, which is the correct state for a skills-only agent (Plugin nil). Also adds the telemetry enum and agentType case so Kiro installs are not logged as TYPE_UNSPECIFIED, keeping TestAgentTypeCoversRegistry green. Note the matching AitoolsAgentType value is still needed in enum.proto on the Universe side; only the CLI half is in this change. Follows the same shape as Goose (databricks#6214), Gemini CLI (databricks#6204) and Pi (databricks#6199).
antonyprasad-db
added a commit
to antonyprasad-db/cli
that referenced
this pull request
Sep 30, 2026
The Goose (databricks#6214) and Gemini CLI (databricks#6204) precedents each ship a .nextchanges fragment plus a Kiro-equivalent assertion in cmd/aitools/install_test.go and cmd/aitools/update_test.go. This branch was missing all three. The update test also needed its fixture extended, not just an assertion: it creates .pi, .gemini and .goose project skill dirs, so DetectProjectInstalled correctly reported no Kiro until .kiro was created alongside them. The production path was never at fault. libs/aitools/agents/detect_test.go is deliberately left alone. Goose and Gemini CLI have custom config-dir resolution worth covering there (XDG_CONFIG_HOME, GOOSE_PATH_ROOT); Kiro uses a plain ~/.kiro with no env override, and registry_test.go already pins both its global and project skills paths. Co-authored-by: Isaac <no-reply@databricks.com>
philip
pushed a commit
to philip/databricks-cli
that referenced
this pull request
Oct 2, 2026
> Recreated from databricks#6436 as a branch in `databricks/cli` (not a fork) so the JFrog/OIDC-gated CI jobs (`task test`, `task test-exp-aitools`, `validate-generated`) actually run — fork PRs can't obtain the OIDC token. Original author's commits are preserved. Supersedes databricks#6436. ## Summary Adds Kiro to the agent registry so `databricks aitools install` treats it like any other skills-only agent. Follows the same shape as Goose (databricks#6214), Gemini CLI (databricks#6204) and Pi (databricks#6199). ## Why Kiro reads agent skills from `~/.kiro/skills` (user-level) and `<workspace>/.kiro/skills` (workspace-level), each skill a directory containing `SKILL.md` — exactly the layout this repo already emits. Today Kiro users have to fall back to `databricks aitools install --path ~/.kiro/skills`, which works but records no state, so `aitools update` and `aitools uninstall` never see those skills and `aitools list` reports every one of them as `not installed`. ## Verification Tested on macOS with Kiro 1.0.182. Kiro's loader (`NodeProgressiveContextSource`) rejects a skill when frontmatter is missing, when `name` or `description` is empty, when `name` is outside 1–64 characters, when `description` exceeds 1024, or when `name` does not equal the directory name. Everything this repo emits satisfies that. With 29 stable skills installed into `~/.kiro/skills`, Kiro accepted all 29. The only rejections in that directory were two deliberately malformed probe skills added to confirm the loader was really scanning, plus two unrelated pre-existing skills whose frontmatter `name` disagrees with their directory: ``` skill.frontmatter.missing zz-probe-no-frontmatter (deliberate probe) skill.fields.missing zz-probe-no-description (deliberate probe) skill.name.mismatch analyze-mlflow-trace (pre-existing, unrelated) skill.name.mismatch analyze-mlflow-chat-session (pre-existing, unrelated) ``` Worth knowing for anyone testing this: Kiro resolves skills lazily when a **chat session starts**, not when the IDE launches. Installing and then looking at an already-open Kiro shows nothing until a new session begins. ## Notes on the registry entry - `SkillsSubdir` is left empty because Kiro's directory is literally `skills`, so the default applies. - `SupportsProjectScope: true` — Kiro's own picker text documents both scopes. - `Binary: "kiro"` is set, but Kiro is IDE-first so the binary is frequently absent from `PATH`. Detection then falls back to `ConfigDir` and reports files-only, which is the correct state for a skills-only agent (`Plugin nil`). ## Telemetry Also adds `AitoolsAgentTypeKiro` and the matching `agentType` case, so Kiro installs are not logged as `TYPE_UNSPECIFIED` and `TestAgentTypeCoversRegistry` stays green. **The Universe half is already merged, so nothing is owed on the proto side.** That guard's failure message notes the enum lives in `enum.proto` (Universe) as well as `aitools_install.go` (CLI). `KIRO = 10` was added to `AitoolsAgentType.Type` and merged to master on 2026-09-01 (universe 2524420), with `Protobuf-Linter-Pr` and `OpenAPICompatibility-Pr` both green — the latter being the machine check that the additive enum value is backward compatible. The two changes are order-independent: the enum addition is additive, and the CLI only emits `"KIRO"` once this PR merges. So this is the complete change and needs a review rather than any follow-up work. ## Tests ``` go test ./cmd/aitools/... ./libs/aitools/... ./libs/telemetry/... ok github.com/databricks/cli/cmd/aitools 4.159s ok github.com/databricks/cli/libs/aitools/agents 1.529s ok github.com/databricks/cli/libs/aitools/installer 2.648s ok github.com/databricks/cli/libs/telemetry 6.616s ok github.com/databricks/cli/libs/telemetry/protos 2.023s ``` Test coverage added alongside the existing Goose cases: registry paths and project detection in `libs/aitools/agents/registry_test.go`, the skills-only assertion in `agents_test.go`, the project-scope declaration in `libs/aitools/installer/installer_test.go`, the agent-choices assertion in `cmd/aitools/install_test.go`, and the project-scope update path in `cmd/aitools/update_test.go` — which needed a `.kiro` project skills dir in the fixture alongside the existing `.pi`, `.gemini` and `.goose` ones. `libs/aitools/agents/detect_test.go` is deliberately not extended: Goose and Gemini CLI have custom config-dir resolution to cover there (`XDG_CONFIG_HOME`, `GOOSE_PATH_ROOT`), while Kiro uses a plain `~/.kiro` with no env override and `registry_test.go` already pins both of its paths. ## Changelog `.nextchanges/cli/aitools-kiro.md`, matching the fragment the Goose and Gemini CLI PRs each shipped. Co-authored-by: Antony Prasad Thevaraj <280810845+antonyprasad-db@users.noreply.github.com> This pull request and its description were written by Isaac. --------- Co-authored-by: Antony Prasad Thevaraj <280810845+antonyprasad-db@users.noreply.github.com> Co-authored-by: Isaac <no-reply@databricks.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.
Changes
Add Gemini CLI as a supported AI tools agent
Configure Gemini settings and skill discovery/update support
Add installation and acceptance test coverage
Stacked on top of Add Pi to
databricks aitools install#6199: target branch must be set tomainbefore mergingTests