Skip to content

Install Databricks AI Tools as part of the configuration step - #230

Merged
rohita5l merged 6 commits into
databricks:mainfrom
lennartkats-db:add-skills-install
Jul 23, 2026
Merged

Install Databricks AI Tools as part of the configuration step#230
rohita5l merged 6 commits into
databricks:mainfrom
lennartkats-db:add-skills-install

Conversation

@lennartkats-db

@lennartkats-db lennartkats-db commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

ucode configure now installs Databricks AI Tools for each coding agent it sets up, so agents can work with Databricks (bundles, jobs, SQL, Genie) out of the box instead of making low-level API calls.

Followup PR to be merged after this: #231

Testing

  • Unit tests cover the token mapping, both configure chokepoints, profile passthrough, and non-fatal failure with CLI-stderr surfacing (incl. the bytes-decoded timeout path).
  • Manual end-to-end validation:
  1. Baseline: claude-code + codex plugins installed.
  2. databricks aitools uninstall --agents claude-code,codex.
  3. Confirmed neither installed.
  4. ucode configure --agent claude → "✔ Databricks AI Tools installed".
  5. Verified claude-code installed, codex still absent (per-agent, not stale state).
  6. ucode configure --agent codex → "✔ Databricks AI Tools installed".
  7. Verified both installed.
  8. Also verified the first-run launch path (ucode claude auto-configure) installs AI Tools, and that an already-configured launch skips it.

`ucode configure` now runs `databricks aitools install` for each coding
agent it sets up (claude-code, codex, opencode, copilot), so agents work
with Databricks out of the box. Best-effort: a failure only warns with the
CLI's own error, since AI Tools aren't required to launch an agent.

Co-authored-by: Isaac
v1.0.0 is the release that ships `databricks aitools install --agents
... --scope`, so bump MIN_DATABRICKS_CLI_VERSION to (1, 0, 0) and drop the
decorative AITOOLS_MIN_CLI_VERSION. `ensure_databricks_cli_version` already
runs (and auto-upgrades) before every path that reaches install_ai_tools,
so the install no longer guesses a version cause on failure: it just
surfaces the CLI's own error.

Co-authored-by: Isaac
subprocess.TimeoutExpired.stderr is bytes even when the call used text=True
(a CPython quirk), so a timed-out `databricks aitools install` rendered its
warning as `b'...'`. Decode bytes before building the reason string, and
cover the timeout-with-stderr path with a test.

Co-authored-by: Isaac
Adds `configure --enable-databricks-ai-tools/--disable-databricks-ai-tools`
(installed by default) plus an interactive prompt that defaults yes but
honors a prior opt-out. The choice persists per workspace as
`databricks_ai_tools_enabled` and gates install_ai_tools_for_agents. Interim
client-side control ahead of admin-managed configuration.

Co-authored-by: Isaac
Move the "Install Databricks AI Tools?" prompt out of the top-level configure
body into configure_workspace_command, so it runs after the workspace and
agent picks instead of before them. Reword it to explain it adds Databricks
skills and plugins. An explicit --enable/--disable flag still answers upfront
and skips the prompt.

Co-authored-by: Isaac
@rohita5l
rohita5l enabled auto-merge (squash) July 23, 2026 17:23
@rohita5l
rohita5l merged commit 86491e2 into databricks:main Jul 23, 2026
2 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.

2 participants