Argo CLI
A command-line interface for interacting with Argo.
This project uses UV for dependency management.
Installation
pip install argocli
Authentication
On first-run, you'll be prompted for an Argo API token. This will be stored in your system credential store (e.g. Keychain on Mac OS) in an item called argocli.
Configuration
On first-run, a configuration file will be generated at ~/.config/argocli/config.yaml. In this file you'll need to replace the values of server, namespace, and username with appropriate values.
server: https://your-argo-instance.server.tld
namespace: YOUR_PROJECT_NAMESPACE
username: your.email@example.com
Environment Variables
You can also override configuration values using environment variables. The naming pattern is:
ARGOCLI_<UPPERCASE_CONFIG_KEY>
For example:
ARGOCLI_SERVERoverrides theserverconfig optionARGOCLI_NAMESPACEoverrides thenamespaceconfig optionARGOCLI_USERNAMEoverrides theusernameconfig option
This is useful for CI/CD pipelines or for switching between different Argo instances without modifying the config file.
Usage
The Argo CLI follows a command-action pattern for all operations:
argocli <command> <action> [options]
Available Commands
| Command | Action | Description |
|---|---|---|
| workflow | status | Show the status of a specific workflow |
| workflow | list | List all workflows with optional name filtering |
| workflow | view | View detailed information about a specific workflow |
Global Options
--verbose: Enable debug output--output [table|json]: Control output format (default: table)--help: Show command help
Examples
Workflow Commands
Show the status of a workflow:
argocli workflow status -n WORKFLOW_NAME
List all workflows:
argocli workflow list
Filter workflows by name (fuzzy match):
argocli workflow list -n cron
List workflows with JSON output:
argocli workflow list --output json
View detailed information about a specific workflow:
argocli workflow view -n WORKFLOW_NAME
View workflow information in JSON format (this will dump the entire workflow object, which is useful for further API work):
argocli workflow view -n WORKFLOW_NAME --output json
Development
Setup Development Environment
# Install dependencies including dev dependencies
uv sync
# Activate the venv
source .venv/bin/activate
# Run tests
uv run pytest
# Run tests with coverage report
uv run pytest --cov=argocli --cov-report=term
Testing
The project uses pytest for unit testing. Tests are organized in a structure that mirrors the main codebase:
tests/unit/- Unit testscommands/- Tests for command implementationsworkflow/- Tests for workflow-related commands
core/- Tests for core functionality
To run specific tests:
# Run tests in a specific file
pytest tests/unit/core/test_client.py
# Run a specific test class
pytest tests/unit/commands/workflow/test_list.py::TestWorkflowList
# Run a specific test method
pytest tests/unit/commands/workflow/test_list.py::TestWorkflowList::test_execute_filtered_list
Project Structure
argocli/commands/- Command implementationsworkflow/- Workflow-related commands
argocli/__init__.py- Console-script entry point (make_main) and lazyCONFIG/ARGO_CLIENTsingletonstests/- Test directory
Command discovery, argument parsing, and dispatch are provided by the shared cac-core framework.
Adding New Commands
- Create a new action module in the appropriate command directory.
- Define a class that inherits from the command's base class, named
{Command}{Action}(e.g.commands/workflow/list.py→WorkflowList). - Implement
define_arguments()andexecute().execute()should return anintexit code (orNonefor success) and may raise; the framework maps exceptions to exit codes.
Metadata
Release files for argocli 0.5.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 | |
|---|---|---|---|
| argocli-0.5.0.tar.gz | 44.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| argocli-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 59.0 kB
Release files / argocli-0.5.0.tar.gz
| Download URL | argocli-0.5.0.tar.gz |
|---|---|
| Size | 44.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ab43772ccb81c8a7051ad41346fd8027c98317ee9b3d2efbb5459065dcffd4cb
|
|
BLAKE2b-256 checksum How to use checksums |
b1c6adc934c2ede8ac7abce101fd8788bfa7a00aca6aabbf7e8543d7818d9e2d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
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 Jul 21, 2026.
Transparency logRelease files / argocli-0.5.0-py3-none-any.whl
| Download URL | argocli-0.5.0-py3-none-any.whl |
|---|---|
| Size | 14.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5a0ab7e799c4ee6b365d715675a9600df7efbdec467864897e5f76634299ae55
|
|
BLAKE2b-256 checksum How to use checksums |
18988910b92673bb24779c25f856169ce1af83054bc204422d60f23e9c5ac2e2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
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 Jul 21, 2026.
Transparency log