How hanaokayuzu/gemini-api works
Gemini-API is an asynchronous Python wrapper around the Gemini web app, with a CLI as an alternate entry point. The primary workflow authenticates a client, sends prompts or files to Gemini, and returns structured or streamed outputs; chat history and Deep Research add distinct conversation and plan/poll/report stages. The README also documents Gems, extensions, and generated media. Sampled source confirms authentication, chat/history, research, parsing, and media behavior; several feature implementations are represented only by their documented enclosing directory, so their internal wiring is omitted.
Main entry points: client.py Gemini client · research_mixin.py Deep Research · get_access_token.py Authentication · chat_mixin.py Chat and history
Components 16
Entry points
- Command line
cli.py
Session and transport
- Gemini client
src/gemini_webapi/client.py - Authentication
src/gemini_webapi/utils/get_access_token.py - Browser cookies
src/gemini_webapi/utils/load_browser_cookies.py - Gemini web app
Gemini capabilities
- Chat and history
src/gemini_webapi/components/chat_mixin.py - Gems management
src/gemini_webapi/components/gem_mixin.py - Deep Research
src/gemini_webapi/components/research_mixin.py - Extensions
src/gemini_webapi/components - Media generation
src/gemini_webapi/components - File upload
src/gemini_webapi/utils/upload_file.py
Parsing and outputs
- Response parsing
src/gemini_webapi/utils/parsing.py - Research extraction
src/gemini_webapi/utils/research.py - Typed outputs
src/gemini_webapi/types - Media downloads
src/gemini_webapi/types/video.py
Other components
- API user
Connections 21
- API user → Gemini client: calls
- API user → Command line: runs
- Command line → Gemini client: commands
- Gemini client → Authentication: authenticates
- Authentication → Browser cookies: loads optionally
- Authentication → Gemini web app: requests session
- Gemini client → Gemini web app: sends requests
- Gemini web app → Gemini client: returns frames
- Gemini client → File upload: uploads files
- Gemini client → Response parsing: parses responses
- Response parsing → Typed outputs: builds outputs
- Gemini client → Chat and history: provides chat
- Chat and history → Gemini client: uses transport
- Gemini client → Gems management: provides gem API
- Gemini client → Deep Research: provides research API
- Deep Research → Chat and history: sends turns
- Deep Research → Research extraction: extracts reports
- Deep Research → Typed outputs: returns plan and result
- Gemini client → Extensions: supports generation
- Gemini client → Media generation: supports generation
- Typed outputs → Media downloads: saves generated media