Skip to main content

CLI for Aegro agricultural management API

Project description

Aegro CLI

Command-line interface for the Aegro agricultural management API.

Python 3.11+ PyPI License: MIT


Install

# pipx (recommended)
pipx install aegro

# uv
uv tool install aegro

# Homebrew (macOS)
brew tap aegro/tap
brew install aegro
# Windows — pipx (recommended)
pipx install aegro

# Windows — uv
uv tool install aegro

# Windows — pip
pip install aegro

Credentials are stored in %LOCALAPPDATA%\aegro\.

WSL: Inside WSL, follow the Linux instructions. WSL and Windows credentials are stored separately — do not mix installations.

OneDrive/Dropbox: Avoid pointing AEGRO_CONFIG_DIR to cloud-synced folders, as file locking may cause intermittent errors.

For development:

git clone https://github.com/aegro/tool-aegro-cli.git
cd tool-aegro-cli
uv sync
uv run aegro --help

Quick Start

# 1. Authenticate
aegro auth login --farm-name "Fazenda Sul" --api-key "aegro_abc123..."

# 2. Select a farm
aegro farms list
aegro farms select "Fazenda Sul"

# 3. Start working
aegro crops list --start-date 2025-01-01 --end-date 2025-12-31
aegro financial installments --status PENDING
aegro stock items --output table

Commands

Group Commands Domain
auth login, status, logout Authentication
farms list, select, info Farm management
crops get, list, prorate, harvest-discounts, prorates, glebes Harvest management
activities get, list, plan, realizations, get-plan, get-realization, create-plan Activity planning
financial bill, installment, installments, create/update/delete-installment, realize Accounts payable/receivable
stock item, location, items, locations, logs, log, transfer, entry, removal Inventory
elements get, list, create-defensive/fertilizer/item/seed/service, set-categories Inputs/supplies
assets get, list, create-machine/vehicle/garner/immobilized/pivot/weather-station Equipment
fuel-supplies get, list, create, update Fuel management
maintenances get, list, create, update Maintenance records
harvest-logs get, create Harvest records
bank-accounts get, list, create Bank accounts
companies get, list, create Suppliers/vendors
fin-categories get, list, create, subcategories Chart of accounts
catalogs list, element-keys, elements Catalog lookups
tags get, list, create Tags/labels
weather get, create Weather data
purchase-orders get, list, create Purchase orders
glebes get, list Farm fields
crop-glebes get, list Crop fields

Output Formats

All commands support three output formats:

aegro crops list --output json    # JSON (default, for LLMs/scripts)
aegro crops list --output table   # Rich table for humans
aegro crops list --output csv     # CSV export

Safe Mode for Mutations

Agents and automation should enable safe mode before running workflows that may create, update, delete, realize, transfer, enter, or remove data:

export AEGRO_SAFE_MODE=1
aegro purchase-orders create ... --dry-run   # Preview request; no API mutation
aegro purchase-orders create ... --execute   # Execute after validating payload

--dry-run prints the target farm, method, endpoint, payload, and local warnings without calling the Aegro API. With AEGRO_SAFE_MODE=1, mutating commands are blocked unless --execute is passed. List/filter/get commands continue to work.


Usage Examples

Human workflow

# Morning overview
aegro farms select "Fazenda Norte"
aegro crops list --output table
aegro financial installments --status PENDING --due-date-start 2025-03-01 --output table
aegro stock items --output table

# Register a fuel supply
aegro fuel-supplies create --asset-key K --date 2025-03-13 --quantity 150 --unit L --cost 900

# Check harvest
aegro harvest-logs get <key>

LLM/Agent workflow

# Agents use JSON output (default) for structured data
aegro crops list --start-date 2025-01-01 --end-date 2025-12-31
aegro activities list --crop-key <key>
aegro stock items
aegro financial installments --status PENDING

AI Skills

The source of truth for public Aegro skills is the Aegro-owned Claude plugin repository aegro/skills. Internal harness skills live separately in the private aegro/skills-internal repository.

This CLI embeds a generated snapshot of aegro/skills in aegro/_skills/ for PyPI installs. Do not edit embedded skills directly; update aegro/skills and then run:

python scripts/sync-skills.py <version>
/plugin marketplace add aegro/skills
/plugin install aegro-skills@aegro-skills

Users who install the CLI from PyPI can also install the embedded skills:

pip install --upgrade aegro
aegro skills install --force

Domain skills (personas)

Skill Purpose
aegro-agronomo Agronomic domain — crops, fields, activities, harvests, weather, inputs
aegro-estoquista Stock domain — items, locations, movements, catalogs, elements
aegro-financeiro Financial domain — bills, installments, categories, bank accounts, companies
aegro-operacional Operational domain — farms, auth, tags, cross-domain orchestration
aegro-patrimonial Asset domain — machines, vehicles, fuel supplies, maintenances

Workflow skills

Skill Purpose
aegro-visao-geral Farm overview dashboard
aegro-fechamento-safra Crop season closing checklist
aegro-lancamento-financeiro Financial entry guide
aegro-reconciliacao-estoque Stock reconciliation
aegro-monitoramento-pragas Pest monitoring
aegro-analise-rentabilidade Profitability analysis
aegro-cadastro-patrimonio Asset registration

Configuration

Authentication

Credential resolution priority:

  1. AEGRO_FARMS env var (JSON) — for CI/CD and scripts
  2. AEGRO_FARMS_FILE env var (path) — for Docker/K8s secrets
  3. Config directory (~/.config/aegro/ on Linux, ~/Library/Application Support/aegro/ on macOS, %LOCALAPPDATA%\aegro\ on Windows) — interactive setup via aegro auth login
# Option 1: Environment variable
export AEGRO_FARMS='{"Fazenda Norte": "aegro_key1", "Fazenda Sul": "aegro_key2"}'

# Option 2: Interactive login (saves to OS-native config directory)
aegro auth login --farm-name "Fazenda Norte" --api-key "aegro_key1"

Active Farm Resolution

With credentials configured, the active farm for each command is resolved in this order:

  1. AEGRO_ACTIVE_FARM env var — scoped to the current process/session
  2. state.json written by aegro farms select — global per machine

AEGRO_ACTIVE_FARM is the recommended approach for orchestrated multi-farm contexts (e.g. Claude Cowork operating several client accounts in parallel sessions). It prevents one session's farms select from contaminating another's because env vars are process-scoped, while state.json is shared.

# Scope an entire session to one farm (no 'farms select' needed)
AEGRO_ACTIVE_FARM="Fazenda Norte" aegro assets list

# Confirm which farm is active and where it came from
aegro farms list    # each entry now has a 'source' field: "env" | "state" | null

Environment Variables

Variable Default Purpose
AEGRO_API_BASE_URL https://app.aegro.com.br Aegro API base URL
AEGRO_FARMS JSON map of farm name → API key
AEGRO_FARMS_FILE Path to JSON credentials file
AEGRO_ACTIVE_FARM Active farm for this session; takes precedence over farms select
AEGRO_CONFIG_DIR Override config directory path
AEGRO_SAFE_MODE Blocks mutating commands unless --execute; use --dry-run to preview

Development

# Install dependencies
uv sync

# Run tests
uv run pytest -v

# Lint
uv run ruff check aegro/ tests/

# Format
uv run ruff format aegro/ tests/

Links


License

MIT

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

aegro-0.5.2.tar.gz (96.8 kB view details)

Uploaded Source

Built Distribution

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

aegro-0.5.2-py3-none-any.whl (112.6 kB view details)

Uploaded Python 3

File details

Details for the file aegro-0.5.2.tar.gz.

File metadata

  • Download URL: aegro-0.5.2.tar.gz
  • Upload date:
  • Size: 96.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aegro-0.5.2.tar.gz
Algorithm Hash digest
SHA256 f7a7ac91629908cb9fe6cd4114aac7b785e523d5e04e6f1cb2de533cb3557d06
MD5 78963b387f41e8b9d27dd86bb8715ec4
BLAKE2b-256 30c32fa8e3c033c2353036035ab8e5743f957b8145e379dd49b79d3c31dc14b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for aegro-0.5.2.tar.gz:

Publisher: publish.yml on aegro/tool-aegro-cli

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

File details

Details for the file aegro-0.5.2-py3-none-any.whl.

File metadata

  • Download URL: aegro-0.5.2-py3-none-any.whl
  • Upload date:
  • Size: 112.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aegro-0.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e65d6c69421dc6b0fb1ce3e243c0b410c18a6b289d63bf603e7ab820bba15674
MD5 7c0ee6c198385bc1bdee416771ba5b06
BLAKE2b-256 bcd25c16f6f8dd60aa47347e482dcb5ab3d8f9228e50424f604c780671404e74

See more details on using hashes here.

Provenance

The following attestation bundles were made for aegro-0.5.2-py3-none-any.whl:

Publisher: publish.yml on aegro/tool-aegro-cli

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