gemini-cli icon indicating copy to clipboard operation
gemini-cli copied to clipboard

Feature Enhancements for Gemini CLI

Open coygeek opened this issue 6 months ago • 9 comments

To-Do List: Feature Enhancements for Gemini CLI

Hello Gemini CLI Team,

Congratulations on the launch of the Gemini CLI! It's a powerful tool with a solid foundation. Based on a review of its capabilities and a comparison with an established tool like Anthropic's Claude Code, here is a categorized to-do list of potential features to consider for future development.

1. Deepen Developer Workflow & Agentic Capabilities

These features would more tightly integrate the CLI into a developer's day-to-day coding loop.

  • ☐ Implement Native Git Integration

    • Description: Allow Gemini to perform git operations directly. Claude Code can create commits with descriptive messages, create new branches, show history, and even generate entire pull requests.
    • Rationale: This moves the tool from being a code generator to a true coding assistant that participates in the version control lifecycle, saving developers significant time.
    • Potential Tools: create_commit, create_pr, get_git_diff, get_git_log.
  • ☐ Add Image & Vision Capabilities

    • Description: Enable the CLI to understand and analyze images. Claude Code allows users to provide images (like screenshots of a UI, an error message, or an architecture diagram) as context for a prompt.
    • Rationale: Visual context is incredibly powerful for UI development ("generate CSS to match this mockup"), debugging (analyzing a screenshot of a bug), and understanding system diagrams.
  • ☐ Introduce "Extended Thinking" or a Computional Budget

    • Description: Allow users to signal that a task is complex and requires more in-depth reasoning. Claude Code has keywords like "think", "think harder", and "ultrathink" that allocate more computational time for planning and analysis before generating a response.
    • Rationale: For complex tasks like planning a major refactor or designing a new system architecture, a simple, fast response is often insufficient. Giving the model a larger "thinking" budget leads to more comprehensive and well-thought-out plans.
  • ☐ Implement Structured To-Do List Management

    • Description: Add tools for creating and managing a structured task list within a session. Claude Code has TodoWrite and TodoRead tools to help break down a large problem into a checklist that both the user and the AI can track.
    • Rationale: This improves the agentic ability to handle multi-step tasks by maintaining a clear plan and tracking progress, preventing the AI from getting lost or forgetting steps.

2. Enhance User Experience & Interactivity

These features focus on improving the usability and power of the interactive REPL.

  • ☐ Support User-Defined Custom Commands

    • Description: Allow users to create their own reusable slash commands. Claude Code supports this at a project level (.claude/commands/) and a user level (~/.claude/commands/), where a markdown file becomes a prompt template.
    • Rationale: This is a massive productivity booster. Teams can create project-specific commands like /project:run_linter or /project:review_for_style_guide, and users can have personal commands like /user:summarize_my_diff. It standardizes common workflows.
  • ☐ Add a VIM Mode for Input

    • Description: Provide a Vim-style editing mode for power users who are comfortable with modal editing.
    • Rationale: Many developers live in Vim and find its keybindings highly efficient for text manipulation. Supporting this caters to a significant segment of the target audience.
  • ☐ Introduce a Session Resume/Continue Flow

    • Description: Allow users to easily continue a previous session. Claude Code has claude --continue to resume the last session and claude --resume to pick from a list of recent conversations.
    • Rationale: Development tasks are often interrupted. Losing the context of a long and productive AI session is frustrating. A simple way to resume work is a critical quality-of-life feature. Note: Gemini's /chat save and /chat resume is a good start, but a CLI flag for the most recent session is more convenient.

3. Expand Extensibility & Integrations

Connect the CLI to the broader developer ecosystem.

  • ☐ Develop Official IDE Integrations (VS Code, JetBrains)

    • Description: Create dedicated extensions for popular IDEs. Claude Code's integrations allow it to view diffs directly in the IDE, share editor context (current selection, open tabs, diagnostic errors), and use keyboard shortcuts to reference files.
    • Rationale: While a terminal tool is powerful, modern development is centered in the IDE. A seamless bridge between the two environments creates a much more powerful and intuitive workflow.
  • ☐ Create a Formal SDK for Programmatic Use

    • Description: Publish a stable SDK (e.g., for TypeScript/Python) that allows other applications to call the Gemini CLI as a subprocess and interact with it programmatically.
    • Rationale: An SDK unlocks automation and custom tooling. It's the foundation for features like the GitHub Action and allows a community to build on top of the CLI.
  • ☐ Build a GitHub Actions Integration

    • Description: Provide a GitHub Action that can run Gemini CLI in a CI/CD pipeline. This can be used for automated code reviews, implementing features from issues, or fixing bugs when triggered by an @gemini command in a PR.
    • Rationale: This extends the CLI's utility beyond the local machine into the heart of the development and deployment process, enabling powerful DevRels and MLOps workflows.

4. Bolster Enterprise & Security Features

These features are critical for adoption in corporate environments.

  • ☐ Implement Enterprise Managed Policies

    • Description: Allow system administrators to define a global, non-overridable settings file (e.g., in /etc/gemini-cli/managed-settings.json).
    • Rationale: Security and compliance teams in large organizations need to enforce policies, such as disabling certain tools or forcing specific telemetry settings. This is a must-have for enterprise-wide deployment.
  • ☐ Create a Fine-Grained, Pattern-Based Permission System

    • Description: Enhance the tool permission system to support patterns. Claude Code allows rules like Bash(git diff:*) to permit any git diff command, or Edit(docs/**) to allow edits only within the docs directory.
    • Rationale: The current excludeTools setting is all-or-nothing. A granular system gives users and admins precise control, allowing them to enable safe commands while blocking potentially dangerous ones, which increases trust and safety.
  • ☐ Provide Explicit Corporate Proxy & LLM Gateway Documentation

    • Description: Document how to configure the CLI to work with standard corporate proxies (HTTPS_PROXY) and popular LLM Gateways like LiteLLM.
    • Rationale: Most enterprise developers operate behind a proxy. Clear, explicit instructions for this common setup challenge are essential for adoption.

5. Improve Context & Memory Management

  • ☐ Support Imports within Context Files
    • Description: Allow GEMINI.md files to import content from other files using a syntax like @path/to/another/file.md.
    • Rationale: This allows for more modular and maintainable context. A team can have a central project_conventions.md file that is imported into multiple sub-project GEMINI.md files, avoiding duplication and keeping context organized.

The Gemini CLI already has some excellent and unique features, such as the Checkpointing (/restore) system, which is a fantastic safety net. By building on this strong foundation with the features above, the Gemini CLI has the potential to become an indispensable tool for developers everywhere.

coygeek avatar Jun 25 '25 19:06 coygeek

@coygeek Thank you for submitting all of these idea. For us to to be able to act on these and track them down, it will be very helpful to have each discrete feature idea captured in its own FR issue.

Adding help wanted label as well in case others in the community want to help with this.

ptone avatar Jun 26 '25 15:06 ptone

+1 for Extended Thinking

I often use ultrathink when interacting with CLI models like Claude Code

slavakurilyak avatar Jun 26 '25 19:06 slavakurilyak

Thanks for the reply @ptone are you asking me to submit each feature request as a separate github issue?

if so, i can close this issue and create 14 separate ones, if needed.

coygeek avatar Jun 27 '25 02:06 coygeek

Thanks for the reply @ptone are you asking me to submit each feature request as a separate github issue?

if so, i can close this issue and create 14 separate ones, if needed.

I am almost sure that was the ask; otherwise, it's challenging to track and propose fixes against this "god" issue. As a Claude Code user, I'd love them to consider your suggestions! Thanks for filling this!

albertocavalcante avatar Jul 21 '25 01:07 albertocavalcante

Introduce a Session Resume/Continue Flow

I'm actively working on this: issue: #3882, PR: #4401.

bl-ue avatar Jul 21 '25 01:07 bl-ue

I'm interested in contributing to this issue. Could someone please share the current status? Is anyone actively working on it, or would it be alright for me to start looking into it? Thank you!

ayushsaksena30 avatar Sep 13 '25 20:09 ayushsaksena30

Thanks for the reply @ptone are you asking me to submit each feature request as a separate github issue? if so, i can close this issue and create 14 separate ones, if needed.

I am almost sure that was the ask; otherwise, it's challenging to track and propose fixes against this "god" issue. As a Claude Code user, I'd love them to consider your suggestions! Thanks for filling this!

Should I create 14 separate issues from it?

satyanvm avatar Oct 04 '25 03:10 satyanvm

@satyanvm I believe you should. A more significant issue requires greater concern, making it more difficult to address.

doggy8088 avatar Oct 10 '25 17:10 doggy8088

@satyanvm I believe you should. A more significant issue requires greater concern, making it more difficult to address.

Hey I am busy with some other works, if anyone would like to pick this up, please do. Thank you so much.

satyanvm avatar Dec 16 '25 04:12 satyanvm

This issue should be closed since it so broad in scope that it's never going to be assigned. Nothing will come of it. It's simply noise. Each of the enhancements contained herein should be addressed with separate issues.

gitenstuff avatar Dec 24 '25 22:12 gitenstuff

As per your request, here's my original github issue separated into 14 separate issues:

1st Issue: Native Git Integration Tools #15531 https://github.com/google-gemini/gemini-cli/issues/15531

2nd Issue: Add Native Image & Vision Capabilities (Multimodal Support) #15532 https://github.com/google-gemini/gemini-cli/issues/15532

3rd Issue: Introduce "Extended Thinking" Mode / Dynamic Computational Budget #15533 https://github.com/google-gemini/gemini-cli/issues/15533

4th Issue: Enhance Structured To-Do List Management (Granular Updates & Persistence) #15534 https://github.com/google-gemini/gemini-cli/issues/15534

5th Issue: Support Markdown-based User-Defined Custom Commands #15535 https://github.com/google-gemini/gemini-cli/issues/15535

6th Issue: Enhance Vim Mode with Visual Mode, Registers, and Advanced Text Objects #15536 https://github.com/google-gemini/gemini-cli/issues/15536

7th Issue: Add --continue flag and interactive --resume launch mode #15537 https://github.com/google-gemini/gemini-cli/issues/15537

8th Issue: Deepen Official IDE Integrations (JetBrains Support & Enhanced VS Code Context) #15538 https://github.com/google-gemini/gemini-cli/issues/15538

9th Issue: Create a Formal SDK for Programmatic Use #15539 https://github.com/google-gemini/gemini-cli/issues/15539

10th Issue: First-Class GitHub Actions Integration & CI/CD Support #15540 https://github.com/google-gemini/gemini-cli/issues/15540

11th Issue: Implement UI Locking for Managed Policies and granular merge strategies #15541 https://github.com/google-gemini/gemini-cli/issues/15541

12th Issue: Fine-Grained, Pattern-Based Permission System #15542 https://github.com/google-gemini/gemini-cli/issues/15542

13th Issue: Documentation & Configuration Support for Corporate Proxies and Custom LLM Gateways #15543 https://github.com/google-gemini/gemini-cli/issues/15543

14th Issue: Support Recursive Imports in Context Files (GEMINI.md) #15544 https://github.com/google-gemini/gemini-cli/issues/15544

Feel free to close this main issue (or any of issues that might be already implemented) if needed.

Enjoy!

coygeek avatar Dec 25 '25 02:12 coygeek