Skip to main content

LangGraph-based coding agent CLI with multi-provider routing

Project description

Reenzar Coding Agent

Ini CLI coding agent berbasis LangGraph. Fokusnya simpel: bantu bikin rencana kerja, generate patch, kasih review, atau tanya jawab soal repo. Routing model bisa pindah antar provider (Google AI Studio, OpenRouter, Z.ai) lewat config.

Catatan singkat: tanpa API key, perintah yang butuh model akan gagal dengan pesan error. Jadi pastikan key sudah diisi dulu.

Yang sudah jalan

  • Pipeline LangGraph: plan -> implement -> critic -> summary.
  • Repo indexer buat ngasih konteks file yang relevan ke model.
  • CLI + REPL interaktif (banner, prompt git-aware, status provider, tips).
  • Progress indicator detail buat operasi yang lama.
  • Artifacts otomatis ke .reenzar-memory/ (plan, summary, patch, log).
  • Deteksi request pembuatan file dari response model.
  • Konfigurasi provider, UI, dan tips lewat file YAML.

Yang masih WIP / catatan

  • Output patch tergantung kualitas model, jadi selalu cek diff dulu.
  • Default model, prompt, dan UX masih bisa berubah.
  • Sebagian fitur butuh koneksi dan API key valid.

Quick start

Install (PyPI)

Pilih salah satu:

  • pipx install reenzar (disarankan untuk CLI)
  • pip install reenzar

Kalau mau ambil versi terbaru langsung dari repo:

  • pipx install git+https://github.com/Ramaerik97/reenzar-coding-agent.git
  • pip install git+https://github.com/Ramaerik97/reenzar-coding-agent.git

Windows (PowerShell)

python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -e .
copy .env.example .env

Edit .env dan isi key. Atau pakai helper:

reenzar auth GOOGLE_API_KEY "your_key"
reenzar auth OPENROUTER_API_KEY "your_key"
reenzar auth ZAI_API_KEY "your_key"

Coba jalanin:

reenzar init
reenzar plan "rapikan struktur folder"

macOS/Linux

python3 -m venv .venv
source .venv/bin/activate
pip install -e .
cp .env.example .env

Gemini OAuth (opsional)

Kalau mau pakai OAuth (bukan API key) untuk Gemini:

  1. Buat OAuth Client di Google Cloud Console (Desktop App).
  2. Download client_secret.json, simpan sebagai config/google_oauth_client.json (file ini jangan di-commit).
  3. Isi GOOGLE_CLOUD_PROJECT di .env.
  4. Ubah auth_mode: oauth di config/default.yaml untuk google_ai_studio.
  5. Jalankan:
    reenzar auth --oauth google
    

Token akan disimpan ke OS keyring (fallback ke .reenzar-memory/google_oauth_token.json kalau keyring tidak tersedia).

Gemini CLI OAuth (eksperimental)

Ini flow alternatif yang mengikuti Gemini CLI (Google login + Code Assist). Cocok kalau kamu mau coba akses kuota/plan dari akun Google-mu.

  1. Ubah auth_mode: gemini_cli di config/default.yaml untuk google_ai_studio.
  2. (Opsional tapi disarankan) set GOOGLE_CLOUD_PROJECT atau OPENCODE_GEMINI_PROJECT_ID di .env.
  3. Jalankan:
    reenzar auth --oauth gemini-cli
    

Flow ini memakai OAuth "Gemini CLI" dan endpoint Code Assist. Ini bukan jalur API resmi standar, jadi bisa berubah sewaktu-waktu. Token disimpan ke OS keyring (fallback ke .reenzar-memory/gemini_cli_oauth.json).

Codex OAuth (eksperimental)

Mode ini pakai login ChatGPT (Codex OAuth) dan backend Codex. Cocok buat yang punya langganan ChatGPT Plus/Pro dan mau coba akses Codex tanpa API key.

  1. Ubah auth_mode: codex_oauth di config/default.yaml untuk openai_codex.
  2. Jalankan:
    reenzar auth --oauth codex
    

Token disimpan ke OS keyring (fallback ke .reenzar-memory/codex_oauth.json).

Perintah penting

  • reenzar menjalankan mode interaktif (REPL).
  • reenzar init cek setup dan bikin folder artifacts.
  • reenzar plan "<goal>" bikin rencana.
  • reenzar implement "<goal>" plan -> implement -> critic -> summary.
  • reenzar ask "<question>" tanya cepat (default free-mode).
  • reenzar review "<goal>" review ringan tanpa diff.
  • reenzar diff lihat patch terakhir.
  • reenzar apply terapkan patch terakhir (--revert untuk rollback).
  • reenzar commit-msg draft commit message dari patch terakhir.
  • reenzar repl jalankan REPL secara eksplisit.
  • Opsi umum: --provider untuk override provider, --free-mode untuk prefer provider gratis.
    • Contoh provider: google_ai_studio, openai_codex, openrouter, z_ai.

Konfigurasi singkat

  • config/default.yaml ngatur urutan provider, model, token, retry, safety, dan UI.
  • Kamu bisa atur provider per role (planner/implementer/reviewer/responder) di:
    • providers.defaults.role (contoh: planner = openai_codex, implementer = google_ai_studio).
  • Di REPL, kamu juga bisa override sementara:
    • :set role.plan openai_codex
    • :set role.review openrouter
  • Bahasa UI bisa diatur di config:
    • ui.language: id atau ui.language: en
  • Di REPL juga bisa ganti cepat:
    • :set lang id / :set lang en
  • config/tips.yaml isi tips yang muncul di progress indicator (EN).
  • config/tips.id.yaml versi Indonesia (dipakai otomatis kalau ui.language: id).
  • Kalau mau matiin banner/tips, cek bagian ui di config.

Security

Lokal di Windows maupun Linux tetap bisa pakai .env (lebih gampang dan aman).

  • Jangan commit .env ke repo.
  • API key dibaca dari environment variables (bisa di-load lewat .env).
  • reenzar auth nulis ke .env dengan permission yang lebih aman (kalau OS mendukung).

Struktur repo

  • src/agent/ inti logika agent, graph, clients.
  • src/agent/cli/ UI CLI, REPL, progress indicator.
  • config/ file konfigurasi.
  • docs/ dokumentasi tambahan.
  • .reenzar-memory/ hasil artifact (plan, summary, patch, log).

Dokumentasi lain

  • docs/CLI_USAGE.md
  • docs/TIPS_CONFIGURATION.md
  • docs/WINDOWS_COMPATIBILITY.md

Development

pytest

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

reenzar-0.1.0.tar.gz (119.2 kB view details)

Uploaded Source

Built Distribution

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

reenzar-0.1.0-py3-none-any.whl (101.7 kB view details)

Uploaded Python 3

File details

Details for the file reenzar-0.1.0.tar.gz.

File metadata

  • Download URL: reenzar-0.1.0.tar.gz
  • Upload date:
  • Size: 119.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for reenzar-0.1.0.tar.gz
Algorithm Hash digest
SHA256 bcd2a94502a5c6c6c7144064f44969b7d8295b23fdd1e60e21175de4821186ec
MD5 ed99e9c8f2a2da9bf74810b08be4e636
BLAKE2b-256 0a65cf9afba28eceff741a6de036c71a7fd36ba59d0612cf8b035afa06b3a605

See more details on using hashes here.

File details

Details for the file reenzar-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: reenzar-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 101.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for reenzar-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bbe3624b7170ecbc4d99b41d165ae3f1de83116ae2656f95fdf335ae7cdb9b19
MD5 b51e0650e88ebdc8ffac21d44ae8e7aa
BLAKE2b-256 ad04cb50fd46738dc65ad51d152016745743846ddad5ad42633dc40c6ea0bb3e

See more details on using hashes here.

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