Virgo
Virgo is a command-line assistant that helps you generate, review, and improve articles. It blends retrieval (Tavily), reasoning (LangChain + LangGraph), and drafting (OpenAI) into a guided flow so you can go from idea to polished copy quickly.
Quickstart
- Install (from PyPI):
pip install virgo-agent
# Optional: add Ollama provider support
pip install "virgo-agent[ollama]"
- Configure your environment (see next section), then run:
virgo --help
Environment
Set these variables before running Virgo:
| Variable | Required | Purpose |
|---|---|---|
OPENAI_API_KEY |
Yes | Drafting, rewrites, and reviews via OpenAI models |
TAVILY_API_KEY |
Yes | Web research to gather facts and sources |
LANGSMITH_API_KEY |
Optional | Observability and tracing via LangSmith |
LANGSMITH_TRACING |
Optional | Enable LangSmith tracing (true/false) |
LANGSMITH_ENDPOINT |
Optional | Override LangSmith endpoint |
LANGSMITH_PROJECT |
Optional | LangSmith project name |
VIRGO_GENAI_PROVIDER |
Optional | openai (default) or ollama |
VIRGO_MODEL_NAME |
Optional | Model name for the chosen provider (default gpt-4-turbo) |
VIRGO_MAX_ITERATIONS |
Optional | Max tool iterations the agent will run (default 5) |
OLLAMA_MODEL |
Optional | Model name for local integration tests (e.g., llama3.2:1b) |
OLLAMA_BASE_URL |
Optional | Ollama base URL (e.g., http://localhost:11434) |
Tips:
- Put secrets in a local
.env(not committed) or manage them viamise. - Python requirement: 3.14 (pre-release builds are fine).
How It Works (High-Level)
- LangChain orchestrates LLM calls and tool usage for drafting and review steps.
- LangGraph wires these steps into a controllable graph: gather context → draft → critique → refine.
- Tavily performs targeted web searches to pull fresh facts and references.
- OpenAI provides the language model for generation and editing.
- Ollama can be used as an alternative model provider when installed (
virgo-agent[ollama]) and selected viaVIRGO_GENAI_PROVIDER=ollama. - Rich and Typer power the CLI experience (progress, prompts, commands).
Workflow overview:
- You provide a topic and intent via the CLI.
- Virgo runs Tavily searches to collect supporting context.
- LangGraph coordinates drafting with OpenAI, then runs critique/refinement passes.
- The final article is returned with suggested improvements and sources.
Common Commands
- Show help:
virgo --help - Generate/review (example):
virgo generate "AI safety"
For Contributors
Developer tooling uses uv for fast installs:
-
Install deps:
uv sync --group dev -
Lint:
uv run task lint:ci -
Format check:
uv run task format:ci -
Type check:
uv run task type-check -
Tests with coverage:
uv run pytest tests --cov=virgo --cov-report=term-missing -
Integration tests (needs Docker + Ollama):
docker compose -f docker-compose.development.yaml up -d --build uv run task integration docker compose -f docker-compose.development.yaml down
Metadata
Release files for virgo-agent 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| virgo_agent-1.1.0.tar.gz | 99.4 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| virgo_agent-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 116.4 kB
Release files / virgo_agent-1.1.0.tar.gz
| Download URL | virgo_agent-1.1.0.tar.gz |
|---|---|
| Size | 99.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6b4aa8f3b012db95280917a0ae17173c8cfb6d7d3c2ed75e2ece5a3a126ce834
|
|
BLAKE2b-256 checksum How to use checksums |
0f0e0b1d689fa6a6c4837451aeaf4aaa0b1d95c6c3269cee802566aea6cd1aa0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Dec 14, 2025.
Transparency logRelease files / virgo_agent-1.1.0-py3-none-any.whl
| Download URL | virgo_agent-1.1.0-py3-none-any.whl |
|---|---|
| Size | 16.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d6b8f23b9d51b42fb708b13350d7c8889ab5e70ad6513b72fe5b2f97ae669163
|
|
BLAKE2b-256 checksum How to use checksums |
50bdf5e45e97ee880202125c18578a08f847c272e1e1b522e63383aaaad93369
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Dec 14, 2025.
Transparency logSecurity for virgo-agent 1.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for virgo_agent-1.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Dec 14, 2025.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.