lea_code 0.0.5
lea_code: ^0.0.5 copied to clipboard
A command-line coding assistant powered by Genkit and Google Gemini.
lea_code #
lea_code is a Dart command-line coding assistant powered by Genkit and Google Gemini. It runs as an interactive terminal chat and gives the model a set of local file, shell, and web tools so it can inspect and modify code in your working directory.
Features #
- Interactive CLI chat loop
- Google Gemini model selection via a command-line flag
- Optional custom system prompt
- Configurable max tool-calling turns per response
- Conversation reset with
/new - Built-in tools for:
- running shell commands
- reading files
- writing files
- editing files with
sed - searching file contents
- finding files by name
- fetching web pages as readable text
- Inline tool status messages while the assistant works
Requirements #
- Dart SDK
^3.11.4 - A Google AI API key exposed as either
GOOGLE_GENAI_API_KEYorGEMINI_API_KEY curlavailable on your system for theweb_fetchtool
Install #
dart pub global activate lea_code
Run #
lea
You can also choose a model and provide a system prompt:
lea \
--model gemini-flash-lite-latest \
--system_prompt "You are a careful coding assistant."
You can also control how many model turns are allowed while using tools:
lea --max_turns 100
CLI Options #
-m,--model: Gemini model name to use. Defaults togemini-flash-lite-latest.-s,--system_prompt: Optional system prompt passed as output instructions.-t,--max_turns: Maximum number of turns the model can use in a conversation step. Defaults to100.
Interactive Commands #
/new: clear the current conversation history/exit: quit the program
Built-in Tools #
The assistant registers seven tools through GeneralAgent:
bash: executes a shell command withbash -cfile_read: reads a file from diskfile_write: writes content to a filefile_edit: edits a file using asedcommandstring_search: searches the current directory withgrep -rfile_find: finds files and directories withfindweb_fetch: fetches a URL
Tool usage is surfaced in the terminal as status messages like [bash] ... and [bash] completed.
These tools operate on the local machine, so use this project only in directories and environments you trust.
Project Structure #
bin/lea_code.dart: CLI entrypoint and REPL looplib/lea_code.dart: top-level application flow and terminal messaginglib/agents/general_agent.dart: Genkit setup and tool registrationlib/tools/: tool definitions exposed to the modellib/models/: typed tool input models and generated schema files
Notes #
- The application exits early if neither
GOOGLE_GENAI_API_KEYnorGEMINI_API_KEYis set. - Tool output is returned directly to the model, including shell stderr when present.
- The installed executable is
lea. string_searchandfile_findrun relative to the current working directory.file_editrunssed -i '', matching BSD/macOSsedbehavior.web_fetchreturns text fetched from the target page.