Skip to main content

Agentic CLI shell for Korean public-sector civil complaint workflows

Project description

GovOn

AI-powered agentic CLI for Korean public-sector civil complaint workflows.

PyPI npm Homebrew Python Docs License: MIT Model: NC

DORA Grade Deploy Freq Lead Time CFR MTTR


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)

  1. Duplicate the reference Space: umyunsang/govon-runtime
  2. Select A100 GPU (80 GB) or higher hardware
  3. 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 Agreementnon-commercial use only. Commercial deployment of the model requires a separate license from LG AI Research.

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

govon-1.1.0.tar.gz (114.5 kB view details)

Uploaded Source

Built Distribution

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

govon-1.1.0-py3-none-any.whl (145.0 kB view details)

Uploaded Python 3

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

Hashes for govon-1.1.0.tar.gz
Algorithm Hash digest
SHA256 87f50617176be571fe4ab4031dec03e39d291bc0244ad87c416edbaca5678cf1
MD5 4e141daff04e5753f9e81d2e2448f549
BLAKE2b-256 bf5b236f4d14e4e437965d23131acfdc751712bdcecf98b3833a8e2eb629686b

See more details on using hashes here.

Provenance

The following attestation bundles were made for govon-1.1.0.tar.gz:

Publisher: publish-pypi.yml on GovOn-Org/GovOn

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

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

Hashes for govon-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d39a0e903f041b0b32e561465a484ee478c529bebd98e5a021f8c94cec2062fb
MD5 29ff15cb9ac03d28a34a82972aafc1e7
BLAKE2b-256 3ae732863d38c4ba990da1ec62719ef782080c48546be7dc27e033f0028dc928

See more details on using hashes here.

Provenance

The following attestation bundles were made for govon-1.1.0-py3-none-any.whl:

Publisher: publish-pypi.yml on GovOn-Org/GovOn

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