Linux terminal Gemini client with secure local API key config
Project description
🕶️ Bro-CLI: The Agentic Terminal Bro
Bro-CLI isn't just another LLM wrapper—it's an agentic terminal assistant that actually does things. Built for developers who want a smart buddy in their Linux environment to help find files, initialize repos, fix bugs, and automate the mundane.
🔥 Key Features
- 🧠 Agentic & Stateful: Doesn't just talk; it proposes and executes terminal commands.
- 💾 Local Memory: Remembers past successes and lessons in a local SQLite database.
- 🔒 Security First: Masked API key entry and automatic suppression of permission-denied noise.
- 🚀 Multi-Provider: Switch between Google Gemini (Flash 2.5/3.0) and Groq Cloud (Llama 3.3) on the fly.
- 📂 Clean Architecture: Modular, professionally structured codebase that's easy to hack on.
🛠️ Project Structure
For developers looking to contribute or customize, here is the "Bro" blueprint:
bro_cli/
├── main.py # Clean CLI entry point & command routing
├── config.py # Secure local configuration management
├── engine/ # 🧠 The Brains
│ ├── manager.py # Task orchestrator
│ ├── planner.py # Hierarchical step decomposition
│ ├── worker.py # Command execution loop
│ ├── reflection.py # Post-task analysis & learning
│ └── memory.py # Local SQLite Knowledge Base
├── providers/ # 🤖 AI Backends
│ ├── base.py # Standardized client interface
│ ├── gemini.py # Google GenAI implementation
│ └── groq.py # Groq Cloud implementation
├── ui/ # 🎨 Aesthetics
│ └── terminal.py # Custom cyberpunk theme & Rich panels
└── utils/ # 🔧 Toolbox
└── shell.py # Safe subprocess execution & CWD tracking
⚡ Quick Start
1. Installation
pip install -e .
2. Configuration
bro config
Choose your favorite provider and securely paste your API keys.
3. Usage
# Direct task execution
bro "Find my Laboratory folder and check for any .py files"
# Interactive mode
bro
# Use a specific provider
bro -p groq "Explain the current directory structure"
🛡️ Privacy & Security
- No Remote Telemetry: Your commands and data never leave your machine except for the specific truncated context sent to your chosen AI provider.
- Full Control: Every command is proposed with a
[y/n]confirmation. You are always the boss. - Secure Storage: API keys are stored in a
jsonfile with restricted0600permissions.
📜 License
MIT - Feel free to fork, hack, and make it your own. Stay agentic! 🛡️
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
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 bro_cli-1.0.1.tar.gz.
File metadata
- Download URL: bro_cli-1.0.1.tar.gz
- Upload date:
- Size: 20.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
928c9e921a5aca2c31c351105a3f180ceb69c006fc6c46bcf3af2ceca488ad1c
|
|
| MD5 |
e4db12efb9adb6efeeed3c5fd2f214a3
|
|
| BLAKE2b-256 |
f10c65fe26948208fc981cffb7adf1acb506067b887cf407b2091b30bc871351
|
Provenance
The following attestation bundles were made for bro_cli-1.0.1.tar.gz:
Publisher:
publish.yml on PromitSarker/Bro-CLI
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bro_cli-1.0.1.tar.gz -
Subject digest:
928c9e921a5aca2c31c351105a3f180ceb69c006fc6c46bcf3af2ceca488ad1c - Sigstore transparency entry: 1342521519
- Sigstore integration time:
-
Permalink:
PromitSarker/Bro-CLI@ea1ca41ecb1f77c4e5fe43c7f6eb138e17390a11 -
Branch / Tag:
refs/tags/1.0.1 - Owner: https://github.com/PromitSarker
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ea1ca41ecb1f77c4e5fe43c7f6eb138e17390a11 -
Trigger Event:
push
-
Statement type:
File details
Details for the file bro_cli-1.0.1-py3-none-any.whl.
File metadata
- Download URL: bro_cli-1.0.1-py3-none-any.whl
- Upload date:
- Size: 22.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a358d1c0fbf8239ceea3354deb8c65d0199bf99a3313c66332fd8be106160fe
|
|
| MD5 |
c60b0297300c7552e540bde2007cd05a
|
|
| BLAKE2b-256 |
07fb0eabc96b6f2eb5be2e9bfb7b5d9c23a4eac78449843fba237ffa73ecc4f5
|
Provenance
The following attestation bundles were made for bro_cli-1.0.1-py3-none-any.whl:
Publisher:
publish.yml on PromitSarker/Bro-CLI
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bro_cli-1.0.1-py3-none-any.whl -
Subject digest:
7a358d1c0fbf8239ceea3354deb8c65d0199bf99a3313c66332fd8be106160fe - Sigstore transparency entry: 1342521524
- Sigstore integration time:
-
Permalink:
PromitSarker/Bro-CLI@ea1ca41ecb1f77c4e5fe43c7f6eb138e17390a11 -
Branch / Tag:
refs/tags/1.0.1 - Owner: https://github.com/PromitSarker
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ea1ca41ecb1f77c4e5fe43c7f6eb138e17390a11 -
Trigger Event:
push
-
Statement type: