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.1.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.1.tar.gz.
File metadata
- Download URL: lana_gemcli-1.0.1.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 |
326764b0771d99903b1f942673f2057a4425fa9668f66ab3f64605a57720042d
|
|
| MD5 |
1c970098bef90d8c85700eefb8d80401
|
|
| BLAKE2b-256 |
68f200ac7c93f1950ff0ddc9efd53c3f4adad1c9a005644a9c3f52561f6071b7
|
File details
Details for the file lana_gemcli-1.0.1-py3-none-any.whl.
File metadata
- Download URL: lana_gemcli-1.0.1-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 |
cf34da0d2256e3a6c89ed9db49c1ea66ca6760f31028bb16da91debee81e4be4
|
|
| MD5 |
4c95ef672280e1cde3a986d694ccc1ff
|
|
| BLAKE2b-256 |
2be61e4b27676e112d65b63b3861562a504613453f7e96c81e0d7e9acb8ee5b7
|