Zenith Is A CLI-Based AI Coding Agent That Transforms Natural Language Into Efficient, Production-Ready Code!
Project description
Zenith-CLI
A CLI-Based AI Coding Agent That Transforms Natural Language Into Efficient, Production-Ready Code.
🌟 Features
Core Features
- ⚡ AI-Powered Code Generation: Transform natural language instructions into high-quality, production-ready code.
- 🗣️ Interactive Chat Interface: Engage with Zenith-CLI through a rich, console-based chat experience.
- 🔧 Extensible Toolset: Utilizes a suite of file system tools (list, read, write, search, make directory, replace content) to interact with the codebase.
- ⚙️ Flexible Configuration: Easily configure OpenAI API keys, base URLs, and models via JSON or ENV files.
- 🚀 Streaming Responses: Provides real-time feedback from the AI agent through streaming.
- 🛡️ Robust Error Handling: Gracefully handles API errors (timeout, bad requests, not found) and file system issues.
Development Tooling
- Ruff Linting: Enforces code style and identifies potential issues.
- Pytest + Coverage: Comprehensive testing framework with 100% coverage enforcement.
🛠️ Tech Stack
- Core: Python 3.13
- CLI Framework: Typer 0.17.4
- Rich Output: Rich-cli 1.8.1
- AI Agent Framework: Autogen-agentchat 0.7.4, Autogen-ext 0.7.4
- Date/Time Utilities: Python-Dateutil 2.9.0
- Environment Variables: Python-Dotenv 1.1.1
- AI API: OpenAI API
🚀 Getting Started
Prerequisites
- Python 3.13
pip(Python package installer)- Git
1) Clone Repository
git clone https://github.com/DataRohit/zenith-cli.git
cd zenith-cli
2) Install Dependencies
pip install -e .
3) Configure Environment
Create a .zenith-cli/config.json or .zenith-cli/.config.env file in your project root.
Example using .zenith-cli/config.json:
{
"zenith_openai_api_key": "YOUR_OPENAI_API_KEY",
"zenith_openai_api_base": "https://api.openai.com/v1",
"zenith_model": "gpt-4"
}
Example using .zenith-cli/.config.env:
ZENITH_OPENAI_API_KEY="YOUR_OPENAI_API_KEY"
ZENITH_OPENAI_API_BASE="https://api.openai.com/v1"
ZENITH_MODEL="gpt-4"
Notes:
- Keep secrets in
.envorconfig.jsonfiles; do not commit them to version control. - If both
config.jsonand.config.envexist in the.zenith-clidirectory, the application will raise an error.
4) Run Zenith-CLI
zenith-cli chat
⚙️ Configuration Highlights
zenith_openai_api_key: Your OpenAI API key.zenith_openai_api_base: The base URL for the OpenAI API. Defaults tohttps://api.openai.com/v1.zenith_model: The specific model to be used (e.g.,gpt-4,gpt-3.5-turbo).zenith_assistant_description: A detailed description of the AI agent's capabilities.zenith_assistant_system_message: The system-level instructions provided to the AI agent to guide its behavior.
These configurations are loaded via zenith.utils.config_loader and can be provided through a .json or .env file.
🧪 Development
Run Linting / Type Checking / Tests Locally:
make ruff-check # or 'make ruff-lint' to auto-fix issues
pytest -q
- Coverage Threshold Is Enforced At 100% Via
pytest.ini. - HTML Coverage Report Is Generated At
htmlcov/index.html.
Ruff and Pytest are configured in pyproject.toml.
📝 Makefile Commands
- help — Show This Help Message
- Code Analysis:
ruff-check— Run Ruff Linter In Check Moderuff-lint— Run Ruff Linter With Auto-Fix
- Cleaning:
clean-all— Remove Python And Tooling Artifacts
🔐 Environment Variables
Environment variables are loaded from .zenith-cli/config.json or .zenith-cli/.config.env.
Critical: Never commit sensitive values like API keys to version control.
📦 Dependencies
Pinned in pyproject.toml (and managed by pip). Key dependencies include:
rich-clityperpython-dotenvpython-dateutilautogen-agentchatautogen-extautogen-ext[openai]pytest(dev)pytest-cov(dev)pytest-asyncio(dev)ruff(dev)
📄 License
This Project Is Licensed Under The MIT License — See The license File For Details.
📞 Contact
Rohit Ingole — rohit.vilas.ingole@gmail.com
Project Link: https://github.com/DataRohit/zenith-cli
Project details
Release history Release notifications | RSS feed
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 zenith_cli-0.1.0.tar.gz.
File metadata
- Download URL: zenith_cli-0.1.0.tar.gz
- Upload date:
- Size: 28.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32d1b4ef89b500ad99f0898e6f4fd6546dd1ee96b9544e49da7869b42f84e080
|
|
| MD5 |
a5fc74bacc82849edb79f434b64872ab
|
|
| BLAKE2b-256 |
b72ef95e25a830e97cfd5a413fc3b1a6d8f2de494b3528eb60b1979ee68a7cb9
|
Provenance
The following attestation bundles were made for zenith_cli-0.1.0.tar.gz:
Publisher:
publish.yml on DataRohit/Zenith
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
zenith_cli-0.1.0.tar.gz -
Subject digest:
32d1b4ef89b500ad99f0898e6f4fd6546dd1ee96b9544e49da7869b42f84e080 - Sigstore transparency entry: 514589617
- Sigstore integration time:
-
Permalink:
DataRohit/Zenith@d6d6eea317789c9b9e561a7009b9d51c190bf12a -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/DataRohit
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d6d6eea317789c9b9e561a7009b9d51c190bf12a -
Trigger Event:
release
-
Statement type:
File details
Details for the file zenith_cli-0.1.0-py3-none-any.whl.
File metadata
- Download URL: zenith_cli-0.1.0-py3-none-any.whl
- Upload date:
- Size: 32.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
85a634292035b5590b965497a0130cbe94160c09227351429e432b958d74bb05
|
|
| MD5 |
34cc74294e935d5d39ae08e90077092d
|
|
| BLAKE2b-256 |
03410182b9fbdffba60d3d1c439d9ad9ea96612ec303e5c895ab3da23cde70f6
|
Provenance
The following attestation bundles were made for zenith_cli-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on DataRohit/Zenith
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
zenith_cli-0.1.0-py3-none-any.whl -
Subject digest:
85a634292035b5590b965497a0130cbe94160c09227351429e432b958d74bb05 - Sigstore transparency entry: 514589637
- Sigstore integration time:
-
Permalink:
DataRohit/Zenith@d6d6eea317789c9b9e561a7009b9d51c190bf12a -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/DataRohit
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d6d6eea317789c9b9e561a7009b9d51c190bf12a -
Trigger Event:
release
-
Statement type: