Skip to content

[Dev Tools Week Q4 2025] make gemini-cli and github spec-kit available in Che/JetBrains #23642

Closed

Description

@adietish

Is your enhancement related to a problem? Please describe

This feature joins the efforts in Dev Tools Week Q4 2025.
The goal is to make gemini-cli and github spec-kit available in Che/Jetbrains

Describe the solution you'd like

gemini-cli should be available in a terminal, usable via remote shell.

Describe alternatives you've considered

No response

Additional context

No response

Activity

  1. added
    kind/enhancementA feature request - must adhere to the feature request template.
    on Nov 6, 2025
  2. added
    status/need-triageAn issue that needs to be prioritized by the curator responsible for the triage. See https://github.
    on Nov 6, 2025
  3. adietish commented on Nov 6, 2025

    @adietish
    Author

    The following editor definition can be used to have a workspace where gemini-cli and github spec-kit are available:
    https://gist.github.com/adietish/1a81be712a10f53dded6ca6703605d4d/raw/8e1a69a0232fa5a9152bd722f9b78734dbbd0a6c/ultimate-with-gemini-cli-and-spec-kit.yaml

    Approach

    Gemini-cli

    A component gemini-cli-injector mounts an additional volume at /gemini-cli where it installs gemini-cli. 2 commands setup-sh-env and setup-bashsh-env make sure the binary gemini is available on the PATH when using bash (remote shell) or sh (web console).
    Image

    Github spec-kit

    A component spec-kit-injector mounts an additional volume at /spec-kit where it installs github spec-kit.
    2 commands setup-sh-env and setup-bashsh-env make sure the binary specify is available on the PATH when using bash (remote shell) or sh (web console).
    Image

    When the workspace is launched you can remote shell to it using

    kubectl exec -it $(kubectl get pod | kubectl get pod | grep workspace | head -n 1) -- bash
    

    Or use the terminal in the OpenShift web console for it.

  4. adietish commented on Nov 6, 2025

    @adietish
    Author

    When launched gemini-cli then asks the user to choose an auth method. 3 are available.

    Auth Method Billing Model Typical Limits (Free Tier)
    Login with Google (OAuth/Personal Account) Free (No credit card required for the free limits). 1,000 requests per day (RPD)60 requests per minute (RPM)
    Gemini API Key (from AI Studio) Pay-as-you-go (Requires setting up a billing account for higher limits). 100 requests per day (RPD) with Pro1,500 requests per day (RPD) with Flash
    Vertex AI (Application Default Credentials/ADC) Pay-as-you-go (Billed through your Google Cloud project). High, Configurable Quotas based on project tier and spending.

    Login with Google (free tier with a large quota) then tries to open a browser, which is of course not available. To trick it and manually provide the auth one has to do the following:

    Google auth has the largest free quota. Here are the instructions how to use it:

    1. EXEC: point BROWSER env var to a script that prints the url:
    cat <<'EOF' > /gemini-cli/bin/url-logger.sh
    #!/bin/bash
    echo "$1"
    EOF
    chmod +x /gemini-cli/bin/url-logger.sh
    export BROWSER=/gemini-cli/bin/url-logger.sh
    1. EXEC: launch gemini and when prompted choose "Login with Google"
    2. ASSERT: it then prints an url to the shell:
    Code Assist login required.
    Attempting to open authentication page in your browser.
    Otherwise navigate to:
    
    https://accounts.google.com/o/oauth2/v2/auth?redirect_uri=http%3A%2F%2Flocalhost%3A36319%2Foauth2callback&access_type=offline&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile&state=XXXXXXX&response_type=code&client_id=XXXXXX-XXXXX.apps.googleusercontent.com
    
    Waiting for Authentication...
    
    1. EXEC: copy this url to your browser which then makes you log into your google account and redirects to a url on localhost and fails.
    http://localhost:43141/oauth2callback?state=XXXX&code=4/XXXX&scope=email%20profile%20https://www.googleapis.com/auth/cloud-platform%20https://www.googleapis.com/auth/userinfo.email%20https://www.googleapis.com/auth/userinfo.profile%20openid&authuser=0&prompt=consent
    1. EXEC: Copy the url and in a 2nd remote shell, curl to it:
    curl "<copied url>"
    1. SUCCESS: gemini-cli is authenticated and can be used
    Image
  5. changed the title [-][Dev Tools Week Q4 2025] make gemini-cli available in Che/JetBrains[/-] [+][Dev Tools Week Q4 2025] make gemini-cli and github spec-kit available in Che/JetBrains[/+] on Nov 7, 2025
  6. self-assigned this
    on Nov 7, 2025
  7. adietish commented on Nov 7, 2025

    @adietish
    Author

    I tried composing but it looks like imports using the plugin (with an url to the devfile with either gemini-cli/spec-kit) directive in devfile is ignored by the operator.

  8. added
    severity/P2Has a minor but important impact to the usage or development of the system.
    team/CThis team is responsible for the the IDEs and Extensions
    and removed
    status/need-triageAn issue that needs to be prioritized by the curator responsible for the triage. See https://github.
    on Nov 13, 2025
  9. adietish commented on Dec 2, 2025

    @adietish
    Author

    In the latest version of gemini one can also before launching gemini do the following:

    export NO_BROWSER=true
    

    Gemini-cli will then print the url that you can then navigate to in your browser in order to get the required verification code.

  10. che-bot commented on Aug 12, 2026

    @che-bot
    Contributor

    Issues go stale after 180 days of inactivity. lifecycle/stale issues rot after an additional 7 days of inactivity and eventually close.

    Mark the issue as fresh with /remove-lifecycle stale in a new comment.

    If this issue is safe to close now please do so.

    Moderators: Add lifecycle/frozen label to avoid stale mode.

  11. added
    lifecycle/staleDenotes an issue or PR has remained open with no activity and has become stale.
    on Aug 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area/editorskind/enhancementA feature request - must adhere to the feature request template.lifecycle/staleDenotes an issue or PR has remained open with no activity and has become stale.severity/P2Has a minor but important impact to the usage or development of the system.team/CThis team is responsible for the the IDEs and Extensions

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions