Skip to main content

Loro

Loro is a Python CLI agent harness for enterprise coding, governed data work, and productivity tasks.

"Loro" is Spanish for parrot: an intelligent, social bird that listens, learns, repeats useful knowledge, and helps information move across groups.

Install

python -m pip install loro-agent
loro --version

Optional extras:

python -m pip install "loro-agent[data]" # Postgres, Iceberg, and PyArrow support
python -m pip install "loro-agent[aws]"  # AWS Bedrock adapter support
python -m pip install "loro-agent[dev]"  # Development and test tools

60-Second Quick Start

Loro ships with a provider setup wizard. Run it with no flags for an interactive setup:

loro configure
loro doctor
loro plan "Create a release readiness checklist for this project."

For a no-key first run, choose the mock provider in the wizard. That lets you verify the CLI, configuration loading, memory paths, artifact folders, and health checks before connecting a paid model provider.

When you are ready to use a cloud model, set the provider API key in your shell and rerun the wizard:

export OPENAI_API_KEY="<your-key>"
loro configure
loro providers check openai
loro run "Inspect README.md and suggest the next three improvements."

The wizard stores local settings in .loro/config.local.toml. API keys stay in environment variables; Loro does not write them into the config file.

What It Includes

  • A Typer-powered CLI entrypoint.
  • Configuration loading from system, user, project, local, runtime, and managed enterprise sources.
  • Permission decision primitives.
  • Local and shared memory interfaces.
  • Postgres and Iceberg shared memory adapters with explicit-only shared write flows.
  • PyIceberg execution support for governed Iceberg shared-memory search and draft commits.
  • Polaris client for read-only governed catalog discovery.
  • Artifact generation for Markdown/DOCX documents, PPTX presentations, XLSX/CSV spreadsheets, and Markdown briefs.
  • Artifact provenance sidecars that record prompt previews, generated paths, assumptions, and generator metadata.
  • JSONL audit logging for runtime tasks, memory writes, and artifact creation.
  • Durable session records with loro sessions list and loro sessions show.
  • Permission-gated file and shell tools.
  • Shared memory draft staging and Postgres/Iceberg schema output.
  • Shared memory backend diagnostics.
  • Safety scanner for obvious secrets before memory and artifact writes.
  • AI provider profiles and loro configure setup wizard.
  • Native tool-call normalization for OpenAI-compatible, Anthropic, Gemini, and Bedrock providers.

Configure A Provider

Use the setup wizard:

loro configure

Or pass options directly for repeatable onboarding scripts:

loro providers list
loro providers show openai
export OPENAI_API_KEY="<your-key>"
loro configure --provider openai --model gpt-5.6-luna --small-model gpt-5.4-mini
loro providers check openai

For local Ollama:

loro configure --provider ollama --model llama3.2 --small-model llama3.2

loro configure writes .loro/config.local.toml by default. Keep provider secrets in environment variables.

Current wizard scope: loro configure guides AI provider setup. Memory, Postgres/Iceberg, and Polaris settings are configured through TOML today; see the docs links below for those enterprise configuration examples.

Run Agentic Tasks

loro plan "Create a release readiness checklist"
loro run "Inspect README.md and suggest the next three improvements."

Loro can use typed tools for file reads/searches, approved edits, approved shell commands, Git helpers, memory search, Polaris discovery, and artifact creation. Write-like tools are permission-gated.

Development

python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
loro --help
python -m pytest

Examples

loro remember --local "Status briefs should include risks, blockers, next steps, and owner."
loro remember --shared "Use the enterprise launch readiness template for launches."
loro memory drafts
loro memory commit-draft <draft-id>
loro memory shared-search "launch readiness" --tenant-id acme
loro memory propose "Use concise launch summaries" --target local
loro memory propose "Use the enterprise launch readiness template" --target shared
loro memory accept-proposal <proposal-id>
loro memory schema --backend postgres
loro memory backend-check
loro docs create "Draft a project kickoff document"
loro slides create "Quarterly platform update"
loro sheets create "Launch readiness tracker"
loro brief meeting "Prepare for roadmap sync"
loro memory search "status briefs"
loro sessions list
loro file search "Polaris" --root .
loro file read PRD.md --limit 1000
loro shell run --yes -- python -c "print('hello from Loro')"
loro safety scan "api_key = 'abc123456789'"
loro providers list
loro providers show nous-portal
loro providers check nous
loro providers request "hello" --provider nous --model deepseek/deepseek-v4-flash
loro providers smoke "hello" --provider gemini --model gemini-3.6-flash --execute
loro providers smoke "hello" --provider anthropic --model claude-sonnet-5 --execute
loro providers smoke "hello" --provider opencode-zen --model deepseek-v4-flash --execute
loro configure --provider ollama --model llama3.2 --small-model llama3.2
loro data schema events --catalog prod --namespace analytics
loro data explain-access events --catalog prod --namespace analytics --catalog-role reader

Generated files are written to artifacts/ by default. Use --output-dir to choose another location. Each generated artifact also gets a .provenance.json sidecar.

Configuration can be layered from .loro/config.toml, LORO_CONFIG, and LORO_CONFIG_CONTENT. Enterprise-managed overlays can be supplied through /etc/loro/managed.toml, LORO_MANAGED_CONFIG, or LORO_MANAGED_CONFIG_CONTENT; those managed values are applied last.

For shell commands, use -- before the command when passing flags to the child process.

Memory and artifact commands scan for obvious secrets by default. Use --allow-sensitive only when enterprise policy allows that content to be persisted.

Documentation

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

loro_agent-0.1.6.tar.gz (87.1 kB view details)

Uploaded Source

Built Distribution

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

loro_agent-0.1.6-py3-none-any.whl (54.4 kB view details)

Uploaded Python 3

File details

Details for the file loro_agent-0.1.6.tar.gz.

File metadata

  • Download URL: loro_agent-0.1.6.tar.gz
  • Upload date:
  • Size: 87.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for loro_agent-0.1.6.tar.gz
Algorithm Hash digest
SHA256 0b3c529038f36bab8c99b7fc930f7c0afd9fd035b5f10f1843dbce7303f2e81a
MD5 94bcc3957426be217df9b73c3bd786a0
BLAKE2b-256 6b57f02ce762ed61be2d2d181a84bdd07d294cdfa97a6ec8faf7700911d6f2e3

See more details on using hashes here.

File details

Details for the file loro_agent-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: loro_agent-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 54.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for loro_agent-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 fc5f8203abb1d6722f897200cbd67986225abc328c31601688e48269ad890599
MD5 13f717a552735bf87204d6a46dd44240
BLAKE2b-256 d23ab03e836eb044ebdcaf32cfc6cbb4957a8136ab5500fc265fb64010253875

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 Sentry Error logging StatusPage Status page