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/Erik-cpu-create/reenzar-coding-agent.git
  • pip install git+https://github.com/Erik-cpu-create/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.2.tar.gz (118.4 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.2-py3-none-any.whl (101.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: reenzar-0.1.2.tar.gz
  • Upload date:
  • Size: 118.4 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.2.tar.gz
Algorithm Hash digest
SHA256 2ff07927e12e4e59eabb7fb3ca8f710887f4f303eb75fe8f37ea546770cbd137
MD5 5700d6b0d72e81cc8d1d543fbc75e6b4
BLAKE2b-256 595eb0a224d4c5958178fba44195b92c1598d44c4798d0c176b9870f5714ada4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: reenzar-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 101.0 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 20ad4dfcb7735d612771fb7eaafbf2aa5e173f3268e6795955e3b1b5352030e6
MD5 889f22cc1b5aa44c13f0122bff432bfd
BLAKE2b-256 1eb4f23015a6764832a38359a6d0271d89fe8cf4dab0ceced5c357e5b262069d

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