Skip to content

Create Google Gemini cli extension#8177

Closed
grahamplata wants to merge 16 commits into
mainfrom
gplata/gemini-extension
Closed

Create Google Gemini cli extension#8177
grahamplata wants to merge 16 commits into
mainfrom
gplata/gemini-extension

Conversation

@grahamplata

@grahamplata grahamplata commented Oct 27, 2025

Copy link
Copy Markdown
Contributor

Create Google Gemini cli extension

Checklist:

  • Covered by tests
  • Ran it and it works as intended
  • Reviewed the diff before requesting a review
  • Checked for unhandled edge cases
  • Linked the issues it closes
  • Checked if the docs need to be updated. If so, create a separate Linear DOCS issue
  • Intend to cherry-pick into the release branch
  • I'm proud of this work!

@grahamplata
grahamplata force-pushed the gplata/gemini-extension branch from 21e3af9 to 780c2ec Compare October 27, 2025 18:18

@ericpgreen2 ericpgreen2 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As mentioned in Slack, can you please remove all the Google integrations so we can first land the Rill-native functionality?

Comment thread extensions/gemini/.prettierrc Outdated
Comment thread extensions/gemini/.gitignore Outdated
Comment thread extensions/README.md Outdated
Comment thread extensions/gemini/commands/rill/analyze.toml Outdated
Comment thread extensions/gemini/eslint.config.js Outdated
Comment thread extensions/gemini/gemini-extension.json Outdated
Comment thread extensions/gemini/tsconfig.json Outdated
Comment thread extensions/gemini/commands/rill/analyze.toml Outdated
Comment thread extensions/gemini/src/tools/tools.ts Outdated
Comment thread package.json Outdated
Comment thread extensions/README.md Outdated
@grahamplata
grahamplata force-pushed the gplata/gemini-extension branch from bd3c3a0 to 39ed6e2 Compare October 30, 2025 20:08
@grahamplata
grahamplata force-pushed the gplata/gemini-extension branch 2 times, most recently from 74b4731 to 62464b2 Compare November 4, 2025 14:30
@grahamplata
grahamplata force-pushed the gplata/gemini-extension branch from 62464b2 to be569bd Compare November 4, 2025 14:36
@grahamplata
grahamplata force-pushed the gplata/gemini-extension branch from 2eec0b4 to 319985e Compare November 4, 2025 21:03

@ericpgreen2 ericpgreen2 Nov 5, 2025

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some of this language seems to be addressed to the end user (e.g. "By connecting to your Rill projects, the Gemini agent can..."), not the Gemini agent. I'd expect that the document would be exclusively addressed to the Gemini agent.

Comment thread integrations/gemini/README.md Outdated
Comment thread integrations/gemini/README.md Outdated
@grahamplata
grahamplata force-pushed the gplata/gemini-extension branch from 7abb8e2 to de2e5ef Compare November 5, 2025 22:06
Comment thread .github/workflows/cli-release.yml Outdated
Comment on lines +124 to +137
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'

- name: Build Gemini Extension
if: env.PUBLISH_RELEASE == 'true'
run: |
cd integrations/gemini
npm ci
npm run build
npm run package
env:
HUSKY: 0

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you pull the Gemini extension release into a separate workflow? So that issues with the Gemini extension can't hold up normal releases/patches

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fair enough, I am going to make it a manually triggered release

Comment thread .github/workflows/cli-release.yml Outdated
Comment on lines +173 to +179
- name: Add Gemini Extension to Release
if: env.PUBLISH_RELEASE == 'true'
uses: softprops/action-gh-release@v1
with:
files: integrations/gemini/release/**
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this create a release on Github? How will that look on the releases page? We don't want it to overshadow our normal Rill release
Screenshot 2025-11-07 at 15 16 33

Comment thread .github/workflows/rill-integrations.yml Outdated
Comment on lines +15 to +33
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'

- name: Install dependencies
run: cd integrations/gemini && npm ci
env:
HUSKY: 0

- name: Build extension
run: cd integrations/gemini && npm run build

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The workflow is called Build and Release Rill Integrations, but looks like it just builds and exits?

Comment thread integrations/gemini/.example.env Outdated
Comment on lines +1 to +4
# Rill Configuration
RILL_ORG="demo"
RILL_PROJECT="demo-project"
RILL_ACCESS_TOKEN="rill_usr_1234567890abcdef"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where precisely will users provide these values? I'm seeing placeholders both here and in integrations/gemini/gemini-extension.json. Ideally there's just one place, and ideally it's a single snippet they can copy/paste from their AI tab.

Comment thread integrations/gemini/README.md Outdated
Comment on lines +31 to +35
Update the extension with your Rill credentials by providing the following information when prompted:

- `Organization`: Your Rill organization name
- `Project`: Your Rill project name
- `Access Token`: Your Rill access token

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where do they provide these values?

Comment thread integrations/gemini/README.md Outdated
Install the extension via GitHub:

```bash
gemini extensions install https://github.com/rilldata/rill

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we have a monorepo, how does Gemini know where in the repo to pick it up from? Does it need some additional hint?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The two supported options are that It needs to be at the root or referenced in the releases. This can also be lifted into its own repo.

Comment thread integrations/gemini/README.md Outdated
Comment on lines +55 to +57
This extension is distributed through [GitHub Releases](https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases). This provides a faster and more reliable initial installation experience for users, as releases are shipped as single archives instead of requiring a git clone.

Each release includes an archive file containing the full contents of the repository at the tagged commit. When checking for updates, Gemini CLI looks for the "latest" release on GitHub (you must mark it as such when creating the release), unless the user installed a specific release by passing `--ref=<some-release-tag>`.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't the latest release occupied by our normal rill binary? I.e. not Gemini. Do we need a dedicated repo here?

Comment thread runtime/ai/ai.go Outdated
Comment thread runtime/ai/analyst_agent.go Outdated
@grahamplata
grahamplata force-pushed the gplata/gemini-extension branch from f7d0b13 to ca354fa Compare November 7, 2025 18:00
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.

3 participants