Skip to main content

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
    • rich formatting
    • 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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lana_gemcli-1.0.1-py3-none-any.whl (22.3 kB view details)

Uploaded Python 3

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

Hashes for lana_gemcli-1.0.1.tar.gz
Algorithm Hash digest
SHA256 326764b0771d99903b1f942673f2057a4425fa9668f66ab3f64605a57720042d
MD5 1c970098bef90d8c85700eefb8d80401
BLAKE2b-256 68f200ac7c93f1950ff0ddc9efd53c3f4adad1c9a005644a9c3f52561f6071b7

See more details on using hashes here.

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

Hashes for lana_gemcli-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cf34da0d2256e3a6c89ed9db49c1ea66ca6760f31028bb16da91debee81e4be4
MD5 4c95ef672280e1cde3a986d694ccc1ff
BLAKE2b-256 2be61e4b27676e112d65b63b3861562a504613453f7e96c81e0d7e9acb8ee5b7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page