Agentic CLI shell for Korean public-sector civil complaint workflows
Project description
GovOn
AI-powered agentic CLI for Korean public-sector civil complaint workflows.
Government employees in South Korea spend hours drafting responses to civil complaints — looking up laws, finding precedents, and formatting official documents. GovOn automates that entire workflow. You type a natural-language request, and an AI agent retrieves relevant data, searches legal references, and generates a draft response in official document format.
The CLI is lightweight (~10 MB). The heavy lifting happens on a remote server running EXAONE 4.0-32B with domain-specific LoRA adapters for civil and legal tasks.
Quick Start
pip install govon
export GOVON_RUNTIME_URL=https://umyunsang-govon-runtime.hf.space
govon
Installation
Prerequisites: Python 3.10+ or Node.js 18+ or Homebrew
pip (recommended)
pip install govon
npm
npm install -g govon
Homebrew (macOS / Linux)
brew tap govon-org/govon && brew install govon
Self-hosted runtime (GPU required)
You can host your own GovOn runtime on Hugging Face Spaces or on-premises.
Option A: Hugging Face Spaces (recommended)
- Duplicate the reference Space: umyunsang/govon-runtime
- Select A100 GPU (80 GB) or higher hardware
- Wait for the Space to start, then set your CLI to point at it:
export GOVON_RUNTIME_URL=https://<your-hf-username>-govon-runtime.hf.space
govon
Tip: Add the export to your shell profile (
~/.zshrc,~/.bashrc) so it persists across sessions.
Option B: Docker (on-premises)
govon server pull
govon server start
Option C: pip extras (bare-metal)
pip install govon[server]
Hardware requirement: The runtime requires an NVIDIA GPU with ≥ 80 GB VRAM (A100 80 GB or higher). Smaller GPUs will fail to load the EXAONE 4.0-32B model.
Usage
Interactive mode (REPL)
# Point the CLI to your runtime (HF Space, Docker, or localhost)
export GOVON_RUNTIME_URL=https://<your-hf-username>-govon-runtime.hf.space
govon
govon> Draft a response for a road damage complaint
┌─ Approval Request ────────────────────┐
│ Type: Draft response │
│ Goal: Road damage complaint response │
│ Tasks: │
│ - Look up legal basis │
│ - Search similar cases │
│ │
│ ● Approve ○ Reject │
└───────────────────────────────────────┘
The agent proposes a plan and waits for your approval before executing any tools.
One-shot mode
govon "Show me road damage complaint statistics for this month"
Multi-turn conversations
govon --session my-session
govon> What are the most common complaint types?
→ (response with statistics)
govon> Draft a response for the top one
→ (uses conversation context to generate a draft)
API call
curl -X POST $GOVON_RUNTIME_URL/v3/agent/run \
-H "Content-Type: application/json" \
-d '{"query": "Show complaint statistics", "session_id": "demo-1"}'
Features
- ReAct agent with 7 tools -- the agent autonomously selects and chains tools based on your request
- Human-in-the-loop approval -- every tool execution requires explicit user approval before running
- Multi-turn conversations -- session-based context management with extractive summarization
- Multi-LoRA inference -- domain-specific adapters (civil complaints + legal references) on a single base model
- Streaming responses -- real-time SSE streaming with per-node progress display
- Three installation methods -- pip, npm, and Homebrew for maximum accessibility
Tools
| Tool | Purpose |
|---|---|
api_lookup |
Query civil complaint data |
issue_detector |
Detect trending complaint issues |
stats_lookup |
Retrieve complaint statistics |
keyword_analyzer |
Analyze keyword trends |
demographics_lookup |
Look up regional demographics |
public_admin_adapter |
Generate official response drafts |
legal_adapter |
Search legal references and precedents |
Architecture
graph LR
subgraph Client
CLI["govon CLI<br/>pip / npm / brew"]
end
subgraph Server ["Server (HF Space or Docker)"]
API["FastAPI"]
AGENT["ReAct Agent<br/>+ 7 Tools"]
LLM["EXAONE 4.0-32B<br/>+ civil LoRA<br/>+ legal LoRA"]
end
CLI -- "HTTP / SSE" --> API --> AGENT --> LLM
style Client fill:#e0f2fe,stroke:#0284c7
style Server fill:#fef3c7,stroke:#d97706
The CLI is thin, the server is powerful.
- CLI: httpx, rich, prompt-toolkit (~10 MB, no GPU needed)
- Server: EXAONE 4.0-32B + vLLM + Multi-LoRA on A100 80 GB
Server Management
Manage the Docker-based backend with govon server:
| Command | Description |
|---|---|
govon server pull [TAG] |
Pull the Docker image |
govon server start |
Start the backend (docker compose up -d) |
govon server stop |
Stop the backend (docker compose down) |
govon server status |
Check container status + /health endpoint |
govon server logs |
Stream logs in real time |
Configuration
| Variable | Description | Default |
|---|---|---|
GOVON_RUNTIME_URL |
Server URL | http://localhost:7860 |
API_KEY |
API authentication key | (none -- unauthenticated access) |
HOST_PORT |
Local server port | 8000 |
export GOVON_RUNTIME_URL=https://umyunsang-govon-runtime.hf.space
export API_KEY=your-api-key
See deploy/env/.env.example for the full list of server-side configuration options.
Documentation
| Resource | Link |
|---|---|
| User Guide | docs/guide/user-guide.md |
| Operations Guide | docs/guide/ops-guide.md |
| API Reference | Endpoint reference |
| Demo Scenarios | docs/demo/README.md |
| Docs Portal | govon-org.github.io/GovOn |
| Public Roadmap | Workstreams |
| Community Discussion | GitHub Discussions |
Resources
| Package | Install |
|---|---|
| PyPI | pip install govon |
| npm | npm install -g govon |
| Homebrew | brew tap govon-org/govon |
| Docker | ghcr.io/govon-org/govon |
| HF Space (hosted runtime) | umyunsang/govon-runtime |
| Civil LoRA Adapter | umyunsang/govon-civil-adapter |
| Legal LoRA Adapter | siwo/govon-legal-adapter |
| Releases | GitHub Releases |
Contributing
git clone https://github.com/GovOn-Org/GovOn.git
cd GovOn
pip install -e ".[dev]"
pytest
See CONTRIBUTING.md for guidelines.
About
GovOn is an industry-academia project from the Department of Computer Engineering at Dong-A University. It assists local government employees with civil complaint response workflows. The AI does not replace human judgment -- it automates repetitive tasks so public servants can focus on decisions that matter.
License
The GovOn source code is licensed under MIT.
Important: The runtime uses EXAONE 4.0-32B-AWQ, which is distributed under the EXAONE AI Model License Agreement — non-commercial use only. Commercial deployment of the model requires a separate license from LG AI Research.
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 govon-1.1.0.tar.gz.
File metadata
- Download URL: govon-1.1.0.tar.gz
- Upload date:
- Size: 114.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
87f50617176be571fe4ab4031dec03e39d291bc0244ad87c416edbaca5678cf1
|
|
| MD5 |
4e141daff04e5753f9e81d2e2448f549
|
|
| BLAKE2b-256 |
bf5b236f4d14e4e437965d23131acfdc751712bdcecf98b3833a8e2eb629686b
|
Provenance
The following attestation bundles were made for govon-1.1.0.tar.gz:
Publisher:
publish-pypi.yml on GovOn-Org/GovOn
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
govon-1.1.0.tar.gz -
Subject digest:
87f50617176be571fe4ab4031dec03e39d291bc0244ad87c416edbaca5678cf1 - Sigstore transparency entry: 1265570592
- Sigstore integration time:
-
Permalink:
GovOn-Org/GovOn@49c609bd5a31226ece893b97ca9be5216ddf9330 -
Branch / Tag:
refs/tags/v1.1.0 - Owner: https://github.com/GovOn-Org
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@49c609bd5a31226ece893b97ca9be5216ddf9330 -
Trigger Event:
push
-
Statement type:
File details
Details for the file govon-1.1.0-py3-none-any.whl.
File metadata
- Download URL: govon-1.1.0-py3-none-any.whl
- Upload date:
- Size: 145.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d39a0e903f041b0b32e561465a484ee478c529bebd98e5a021f8c94cec2062fb
|
|
| MD5 |
29ff15cb9ac03d28a34a82972aafc1e7
|
|
| BLAKE2b-256 |
3ae732863d38c4ba990da1ec62719ef782080c48546be7dc27e033f0028dc928
|
Provenance
The following attestation bundles were made for govon-1.1.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on GovOn-Org/GovOn
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
govon-1.1.0-py3-none-any.whl -
Subject digest:
d39a0e903f041b0b32e561465a484ee478c529bebd98e5a021f8c94cec2062fb - Sigstore transparency entry: 1265570679
- Sigstore integration time:
-
Permalink:
GovOn-Org/GovOn@49c609bd5a31226ece893b97ca9be5216ddf9330 -
Branch / Tag:
refs/tags/v1.1.0 - Owner: https://github.com/GovOn-Org
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@49c609bd5a31226ece893b97ca9be5216ddf9330 -
Trigger Event:
push
-
Statement type: