{
  "markdown": "# Gemini Sidekick Extension\n\nA Gemini extension that provides a browser-based \"sidekick\" interface to automatically render content using the Gemini Web UI's Canvas tool.\n\n## Features\n\n- **Automated Browser Control**: Launches and manages a Chrome instance specifically for Gemini.\n- **Session Integration**: Links browser tabs to Gemini agent sessions using `window.name`.\n- **Canvas Tool Enablement**: Automatically toggles and enables the Canvas tool upon session start.\n- **Prompt Interception**: Support for `#prompt-sidekick` to send prompts directly to the sidekick.\n- **Result Rendering**: Support for `#sidekick` in prompts to render LLM responses directly in the sidekick's canvas.\n- **Multiline Support**: Custom handling for multiline text input in the Gemini prompt box.\n\n## Sample use\n\n### #sidekick prompt\n\n```text\n\n ███            █████████  ██████████ ██████   ██████ █████ ██████   █████ █████\n░░░███         ███░░░░░███░░███░░░░░█░░██████ ██████ ░░███ ░░██████ ░░███ ░░███\n  ░░░███      ███     ░░░  ░███  █ ░  ░███░█████░███  ░███  ░███░███ ░███  ░███\n    ░░░███   ░███          ░██████    ░███░░███ ░███  ░███  ░███░░███░███  ░███\n     ███░    ░███    █████ ░███░░█    ░███ ░░░  ░███  ░███  ░███ ░░██████  ░███\n   ███░      ░░███  ░░███  ░███ ░   █ ░███      ░███  ░███  ░███  ░░█████  ░███\n ███░         ░░█████████  ██████████ █████     █████ █████ █████  ░░█████ █████\n░░░            ░░░░░░░░░  ░░░░░░░░░░ ░░░░░     ░░░░░ ░░░░░ ░░░░░    ░░░░░ ░░░░░\n\n\nLogged in with Google: REDACTED /auth\nPlan: Gemini Code Assist in Google One AI Pro\n\n\n shift+tab to accept edits                                                                                                                                                                                                 2 GEMINI.md files | 1 MCP server\n\n > Do not look at the project file, just show a simple mermaid org chart. Do not output anything else. #sidekick\n```\n\n![#sidekick](screenshots/hash-sidekick.png)\n\n---\n\n### #prompt-sidekick prompt\n\n```text\n\n ███            █████████  ██████████ ██████   ██████ █████ ██████   █████ █████\n░░░███         ███░░░░░███░░███░░░░░█░░██████ ██████ ░░███ ░░██████ ░░███ ░░███\n  ░░░███      ███     ░░░  ░███  █ ░  ░███░█████░███  ░███  ░███░███ ░███  ░███\n    ░░░███   ░███          ░██████    ░███░░███ ░███  ░███  ░███░░███░███  ░███\n     ███░    ░███    █████ ░███░░█    ░███ ░░░  ░███  ░███  ░███ ░░██████  ░███\n   ███░      ░░███  ░░███  ░███ ░   █ ░███      ░███  ░███  ░███  ░░█████  ░███\n ███░         ░░█████████  ██████████ █████     █████ █████ █████  ░░█████ █████\n░░░            ░░░░░░░░░  ░░░░░░░░░░ ░░░░░     ░░░░░ ░░░░░ ░░░░░    ░░░░░ ░░░░░\n\n\nLogged in with Google: REDACTED /auth\nPlan: Gemini Code Assist in Google One AI Pro\n\n shift+tab to accept edits                                                                                                                                                                                                 2 GEMINI.md files | 1 MCP server\n\n > Show animation of sun, earth and moon #prompt-sidekick\n```\n\n![#prompt-sidekick](screenshots/hash-prompt-sidekick.png)\n\n## Prerequisite\n\n```bash\ngit clone https://github.com/sandipchitale/gemini-sidekick.git\ncd gemini-sidekick\nnpm install\n```\n\n**TODO** Make a binary or installatble npm package.\n\n## Installation\n\n```bash\ncd  /path/to/gemini-sidekick\ngemini extension link .\n```\n\n## Disable the extension\n\n```bash\ngemini extension disable gemini-sidekick\n```\n\n## Enable the extension\n\n```bash\ngemini extension enable gemini-sidekick\n```\n\n## Uninstallation\n\n```bash\ngemini extension uninstall gemini-sidekick\n```\n\n## Workflow\n\n### 1. Session Start\n\nWhen a session begins, the extension:\n\n- Launches Chrome with a dedicated user data directory.\n- Navigates to `https://gemini.google.com`.\n- Sets the window identity to match the session ID.\n- Enables the \"Tools\" drawer and selects the \"Canvas\" tool.\n\n**IMPORTANT**: The user needs to log into Gemini.\n\n### 2. Prompt Interception (`#prompt-sidekick`)\n\nIf your prompt includes `#prompt-sidekick`, the extension:\n\n- Finds the corresponding browser tab.\n- Types the prompt directly into the Gemini web UI.\n- Prevents the prompt from being sent to the standard LLM flow (returns a bypass reason) in gemini cli.\n\n### 3. Response Rendering (`#sidekick`)\n\nIf your prompt includes `#sidekick`, once the agent generates a response:\n\n- The extension extracts the response content.\n- It finds the sidekick tab.\n- It renders the response content using the Canvas tool in the web UI.\n\n## File Structure\n\n- `gemini-sidekick.ts`: Core logic for browser automation and hook handling.\n- `gemini-extension.json`: Extension metadata and configuration.\n- `hooks/hooks.json`: Definition of event hooks (SessionStart, BeforeAgent, AfterAgent).\n\n## Technical Details\n\n- **Port**: Remote debugging on port `19222`.\n- **Storage**: User data stored in `/tmp/gemini-sidekick-user-data-dir`.\n- **Library**: Powered by `puppeteer-core` and `chrome-launcher`.\n",
  "bytes": 4981,
  "sha": "d126e9427aa7f0ff2db3eabf24173f2479eb919ec49bbf58367b124cc398bb0a",
  "repo_slug": "sandipchitale/gemini-sidekick",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_sandipchitale_gemini_sidekick_3e2be7bf/readme"
}