Skip to main content

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

Project description

Zenith-CLI

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

Python 3.13 Typer Rich AutoGen Python-Dateutil Python-Dotenv OpenAI

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 .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

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 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
  • 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 Mode
    • ruff-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-cli
  • typer
  • python-dotenv
  • python-dateutil
  • autogen-agentchat
  • autogen-ext
  • autogen-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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zenith_cli-0.1.0.tar.gz (28.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zenith_cli-0.1.0-py3-none-any.whl (32.4 kB view details)

Uploaded Python 3

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

Hashes for zenith_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 32d1b4ef89b500ad99f0898e6f4fd6546dd1ee96b9544e49da7869b42f84e080
MD5 a5fc74bacc82849edb79f434b64872ab
BLAKE2b-256 b72ef95e25a830e97cfd5a413fc3b1a6d8f2de494b3528eb60b1979ee68a7cb9

See more details on using hashes here.

Provenance

The following attestation bundles were made for zenith_cli-0.1.0.tar.gz:

Publisher: publish.yml on DataRohit/Zenith

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for zenith_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 85a634292035b5590b965497a0130cbe94160c09227351429e432b958d74bb05
MD5 34cc74294e935d5d39ae08e90077092d
BLAKE2b-256 03410182b9fbdffba60d3d1c439d9ad9ea96612ec303e5c895ab3da23cde70f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for zenith_cli-0.1.0-py3-none-any.whl:

Publisher: publish.yml on DataRohit/Zenith

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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