a simple yet useful cli for interacting with google gemini
Project description
lana
a simple semi-agentic chatbot interface for gemini built around the terminal.
context
i wanted aistudio in the terminal. but i kept going.
how ai was used during the creation of this project
- used to help understand docs
- used to implement a prototype solution to one complicated problem that i then studied/understood and replaced w/ my own solution
- the project itself is merely a client for AI APIs
getting started
this project is on pypi! you just have to install python and
pip install lana-gemcli
roadmap/to-do
core
- basic gemini api interface
- conversation
- basic search tool calls
- file manipulation and code execution tools (make these not suck)
- sysprompt encouraging heavy tool usage
- asyncification
- switch to selenium
user interaction
- multimodal inputs
- multi-line user prompts
- user image/video/etc input
- argparse
- mime type detection
- inserting files into prompts after the first, TBD alongside UI improvements
- user-defined system prompt
- improve ui and ux
-
richformatting - configuration/settings interface
- saved chats interface
-
- easy installation
- tba
tools and data retrieval
- selenium improvements
- switch to selenium headless
- click on element with css selector
- type text with css selector
- take screenshot
- persistent chats
- context-to-file serialisation
- file-to-context deserialisation
- tba
agentic functionality
- persistence
- persistent chats, see "tools and data retrieval"
- "notebooks"
- basically just markdown files that contain certain kinds of info
- similar to openclaw's SOUL.md, MEMORY.md, HEARTBEAT.md, etc.
- model can literally just write to these using the provided tools i think?
- sub-agents
- sub-agents. the "root" agent should be able to activate these via tool call and they run in the background
- this would require some kind of multi-threading or idk maybe asyncio has something useful?
- have the main loop poll the agents on every generation, so we can inject the sub-agent return as a tool return even if the sub-agent tool already returned "sub-agent started" or similar.
- sub-agents should be able to spawn their own sub-agents (should they be? i'm not sure about this), which means that certain environment variables (system prompt, running/owned sub-agents, etc.) should be tied to an agent. speaking of which, i should probably make this more OOP-like (see: internal codebase changes)
- post ship
- tba
internal codebase
- tool-calling boilerplate cleanup
- stronger typing
- tba
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
lana_gemcli-1.0.0.tar.gz
(1.6 MB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lana_gemcli-1.0.0.tar.gz.
File metadata
- Download URL: lana_gemcli-1.0.0.tar.gz
- Upload date:
- Size: 1.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8efc6e0711910531f2552984572126d2e74d2dbbf1d1adda1d17fa73e1716380
|
|
| MD5 |
3bb14f5ea1d5f87050e13302e12c084a
|
|
| BLAKE2b-256 |
3964a7e01f3fb0ec2fc2e3ff7b5793f45000078b078cfcb09b52bc11038df5af
|
File details
Details for the file lana_gemcli-1.0.0-py3-none-any.whl.
File metadata
- Download URL: lana_gemcli-1.0.0-py3-none-any.whl
- Upload date:
- Size: 22.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7f6de0ee7767274dd10497b032472173bc9f66946aa922a2caa2a7ce6c61c68
|
|
| MD5 |
e9b44c2ce3fe2566a87d2d9330b14c39
|
|
| BLAKE2b-256 |
bcacafc7a9e41e338ca89b4ee5e5e56c92a24817265f2bf30c60babe97bb7a59
|