Skip to content

DataRohit/Zenith

Repository files navigation

Zenith-CLI

███████╗███████╗███╗   ██╗██╗████████╗██╗  ██╗
╚══███╔╝██╔════╝████╗  ██║██║╚══██╔══╝██║  ██║
  ███╔╝ █████╗  ██╔██╗ ██║██║   ██║   ███████║
 ███╔╝  ██╔══╝  ██║╚██╗██║██║   ██║   ██╔══██║
███████╗███████╗██║ ╚████║██║   ██║   ██║  ██║
╚══════╝╚══════╝╚═╝  ╚═══╝╚═╝   ╚═╝   ╚═╝  ╚═╝

Project Status: Active License: MIT Version Coverage: 100%

Python 3.13 Typer Rich AutoGen Python-Dateutil

A CLI-Based AI Coding Agent That Transforms Natural Language Into Efficient, Production-Ready Code.

🖼️ Images

Zenith Help

Zenith Chat

🌟 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 .env or config.json files; do not commit them to version control.
  • If both config.json and .config.env exist in the .zenith-cli directory, the application will raise an error.

4) Run Zenith-CLI

To display help:

zenith -h

To run the chat:

zenith -c <path-to-config-file> chat

⚙️ Configuration Highlights

  • zenith_openai_api_key: Your OpenAI API key.
  • zenith_openai_api_base: The base URL for the OpenAI API. Defaults to https://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

📄 License

This Project Is Licensed Under The MIT License — See The license File For Details.

📞 Contact

Rohit Ingole — rohti.vilas.ingole@gmail.com

Project Link: https://github.com/DataRohit/Zenith

About

Zenith Is A CLI-Based AI Coding Agent That Transforms Natural Language Into Efficient, Production-Ready Code.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published