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.0.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.0-py3-none-any.whl (22.3 kB view details)

Uploaded Python 3

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

Hashes for lana_gemcli-1.0.0.tar.gz
Algorithm Hash digest
SHA256 8efc6e0711910531f2552984572126d2e74d2dbbf1d1adda1d17fa73e1716380
MD5 3bb14f5ea1d5f87050e13302e12c084a
BLAKE2b-256 3964a7e01f3fb0ec2fc2e3ff7b5793f45000078b078cfcb09b52bc11038df5af

See more details on using hashes here.

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

Hashes for lana_gemcli-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d7f6de0ee7767274dd10497b032472173bc9f66946aa922a2caa2a7ce6c61c68
MD5 e9b44c2ce3fe2566a87d2d9330b14c39
BLAKE2b-256 bcacafc7a9e41e338ca89b4ee5e5e56c92a24817265f2bf30c60babe97bb7a59

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