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.gitpip 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:
- Buat OAuth Client di Google Cloud Console (Desktop App).
- Download
client_secret.json, simpan sebagaiconfig/google_oauth_client.json(file ini jangan di-commit). - Isi
GOOGLE_CLOUD_PROJECTdi.env. - Ubah
auth_mode: oauthdiconfig/default.yamluntukgoogle_ai_studio. - 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.
- Ubah
auth_mode: gemini_clidiconfig/default.yamluntukgoogle_ai_studio. - (Opsional tapi disarankan) set
GOOGLE_CLOUD_PROJECTatauOPENCODE_GEMINI_PROJECT_IDdi.env. - 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.
- Ubah
auth_mode: codex_oauthdiconfig/default.yamluntukopenai_codex. - Jalankan:
reenzar auth --oauth codex
Token disimpan ke OS keyring (fallback ke .reenzar-memory/codex_oauth.json).
Perintah penting
reenzarmenjalankan mode interaktif (REPL).reenzar initcek 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 difflihat patch terakhir.reenzar applyterapkan patch terakhir (--revertuntuk rollback).reenzar commit-msgdraft commit message dari patch terakhir.reenzar repljalankan REPL secara eksplisit.- Opsi umum:
--provideruntuk override provider,--free-modeuntuk prefer provider gratis.- Contoh provider:
google_ai_studio,openai_codex,openrouter,z_ai.
- Contoh provider:
Konfigurasi singkat
config/default.yamlngatur 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: idatauui.language: en
- Di REPL juga bisa ganti cepat:
:set lang id/:set lang en
config/tips.yamlisi tips yang muncul di progress indicator (EN).config/tips.id.yamlversi Indonesia (dipakai otomatis kalauui.language: id).- Kalau mau matiin banner/tips, cek bagian
uidi config.
Security
Lokal di Windows maupun Linux tetap bisa pakai .env (lebih gampang dan aman).
- Jangan commit
.envke repo. - API key dibaca dari environment variables (bisa di-load lewat
.env). reenzar authnulis ke.envdengan 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.mddocs/TIPS_CONFIGURATION.mddocs/WINDOWS_COMPATIBILITY.md
Development
pytest
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ff07927e12e4e59eabb7fb3ca8f710887f4f303eb75fe8f37ea546770cbd137
|
|
| MD5 |
5700d6b0d72e81cc8d1d543fbc75e6b4
|
|
| BLAKE2b-256 |
595eb0a224d4c5958178fba44195b92c1598d44c4798d0c176b9870f5714ada4
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
20ad4dfcb7735d612771fb7eaafbf2aa5e173f3268e6795955e3b1b5352030e6
|
|
| MD5 |
889f22cc1b5aa44c13f0122bff432bfd
|
|
| BLAKE2b-256 |
1eb4f23015a6764832a38359a6d0271d89fe8cf4dab0ceced5c357e5b262069d
|