Skip to main content

Apheris Foundry CLI

Command-line interface for submitting and managing Foundry workflow runs on an Apheris Hub instance.

Requirements

  • Python 3.10 or later
  • Access to an Apheris Hub instance

Installation

conda

Recommended if you already use conda for scientific Python work. A dedicated environment avoids dependency conflicts.

Linux / macOS

conda create -n apheris-foundry python=3.11 -y
conda activate apheris-foundry
pip install apheris-foundry-cli

Windows (Anaconda Prompt or PowerShell)

conda create -n apheris-foundry python=3.11 -y
conda activate apheris-foundry
pip install apheris-foundry-cli

Activate the environment at the start of each session with conda activate apheris-foundry.

venv (standard Python)

Linux / macOS (venv)

python3 -m venv ~/.venvs/apheris-foundry
source ~/.venvs/apheris-foundry/bin/activate
pip install apheris-foundry-cli

Windows (PowerShell, venv)

python -m venv $env:USERPROFILE\.venvs\apheris-foundry
& $env:USERPROFILE\.venvs\apheris-foundry\Scripts\Activate.ps1
pip install apheris-foundry-cli

Activate the environment at the start of each session with the activate command above.

Verify

apheris-foundry --version
apheris-foundry --help

Upgrade

pip install --upgrade apheris-foundry-cli

Login

Connect to your Hub using the URL provided by your team:

apheris-foundry login --url https://hub.example.com

Follow the sign-in instructions. The CLI saves your session for later commands. Use apheris-foundry logout to sign out, or log in again to switch Hubs.

If login reports that its local ports are already in use, follow the commands in the error message to identify the conflicting application. Close it if appropriate, then retry login. If you cannot resolve the conflict, share the error message with your support team.

Install agent skills

If you use an AI agent, install the CLI guidance for your agent:

apheris-foundry skills install --agent codex
# Or: apheris-foundry skills install --agent claude

The CLI skill is bundled and can be installed offline. After login, install workflow guidance directly from your Hub:

apheris-foundry workflows list
apheris-foundry skills install --workflow predict --agent codex

Use --path ./.agents/skills instead of --agent for another agent or a project directory. Reload skills in your agent if needed. Installing skills copies instructions; it does not log in or submit a job.

skills list shows bundled CLI skills and every workflow skill from your active Hub together. If Hub is unavailable, bundled skills still appear; unavailable workflow skills are quietly skipped. Display the selected skill without installing it:

apheris-foundry skills show apheris-foundry-hub
apheris-foundry skills show --workflow predict
apheris-foundry skills show apheris-workflow-predict
# Install every bundled and Hub workflow skill after login:
apheris-foundry skills install --all --agent codex

The default skills install --agent codex installs all bundled skills offline. Use --force when you want to replace an installed skill, including after changing Hubs or upgrading workflows. Replacement removes local edits and stale files in that skill only.

Older Hubs or custom workflows may not provide skills yet. In that case, the CLI reports the API error; ask your Hub administrator to deploy workflow skills. See Using the CLI for help and skill provenance details.

Quick start: predict a structure

Choose an MSA server

MSA server preferences live under settings, just as in the Hub UI:

apheris-foundry settings msa list
# Select an ID shown in the list:
apheris-foundry settings msa select 2

The list shows the servers configured on your current Hub and marks the active one. IDs vary by deployment; use your Hub's list. Selection is saved on Hub and shared with the UI. Subsequent MSA-enabled Foundry runs use it without an additional run option. If you do not change this setting, existing behavior is preserved. Switching servers does not change jobs already submitted.

Use apheris-foundry settings msa disable to opt out of automatic MSA and supply your own MSA files where required. Select a server again to re-enable it. Each command supports --json. See MSA settings for details about preference scope and scripting.

Submit a prediction

After login, check that your Hub offers prediction:

apheris-foundry workflows get --workflow predict
apheris-foundry workflows docs --workflow predict
apheris-foundry workflows models --workflow predict

Save this small example as request.json:

{
  "queries": [{
    "chains": [{
      "chain_id": "A",
      "polymer_type": "protein",
      "sequence": "GSAEYVRALFDFNGNDEEDLPFKKGDILRIRDKPEEQWWNAEDSEGKRGMIPVPYVEKYHHHHHH"
    }]
  }]
}

Submit it using your Hub's default model settings:

apheris-foundry workflows run --workflow predict --input request.json

Folders and ZIP files use binary archive upload on Hub versions that support POST /api/v1/foundry/runs/upload:

apheris-foundry workflows run --workflow aqcell-finetune --input ./input/ --name training
apheris-foundry workflows run --workflow aqcell-finetune --input ./finetune-input.zip --strip-archive-root --name training

Folders are packaged automatically as an uncompressed ZIP in a temporary directory, then streamed to Hub. The temporary archive is removed after submission, including on failure. Existing ZIPs are validated; pass a ZIP alone. Hidden files and directories (dot-prefixed path components) are excluded. ZIPs containing them are streamed into a filtered temporary ZIP; other ZIPs are uploaded unchanged. Binary contents and relative paths are preserved by default. For the supplier's extra input/ folder, pass --strip-archive-root explicitly. Folder uploads need local temporary disk space roughly equal to the dataset size. Uploads and expanded archives are limited to 1 GiB; the server controls the entry count; links, traversal and conflicting paths are rejected. A failed network upload must be submitted again; uploads are not resumable or reusable datasets. Single text-file inputs retain the existing JSON submission path for older Hub versions.

This uploads the input and starts a job on Hub. Copy the returned job ID and use it in the commands below:

apheris-foundry jobs get --id <job-id>
apheris-foundry jobs logs --id <job-id>
# After the job succeeds:
apheris-foundry jobs download --id <job-id> --output ./results

If the job fails, use apheris-foundry jobs error --id <job-id> to inspect the error before retrying. Prediction requires a Hub with the model and compute resources configured; this example uses those resources.

Override model parameters inline or from a JSON file. Select models and weights advertised by workflows models:

apheris-foundry workflows run --workflow predict --input request.json \
  --model-params '{"seeds":[7,9],"num_diffusion_samples":3}'
apheris-foundry workflows run --workflow predict --input request.json \
  --param model=<model-id> --weight <weight-version> \
  --model-params @./model-params.json

For optional templates, see the template prediction example. For other workflows and model overrides, see Using the CLI.

Edit job names and tags

Update an existing run in any status, including succeeded, failed, or cancelled:

# Rename, preserving tags
apheris-foundry jobs update --id <job-id> --name "Corrected name"
# Replace all tags, preserving the name (does not append)
apheris-foundry jobs update --id <job-id> --tag mcl1 --tag rerun
# Change both fields and return the updated run as JSON
apheris-foundry jobs update --id <job-id> --name "Corrected name" --tag mcl1 --json
# Explicitly clear either field
apheris-foundry jobs update --id <job-id> --name ""
apheris-foundry jobs update --id <job-id> --clear-tags

Omitted fields remain unchanged. Supply at least one metadata option; --tag and --clear-tags cannot be combined. Hub trims names and tags, deduplicates tags, and removes empty tags. Output uses the updated metadata returned by Hub. Existing ownership checks apply, and open Hub views receive the metadata change notification.

Command reference

Authentication

Command Description
apheris-foundry login Log in to a Hub instance
apheris-foundry logout Log out of the current session

Workflow definitions (workflows)

Command Description
apheris-foundry workflows list List workflow definitions exposed by Hub
apheris-foundry workflows get --workflow <id> Inspect one workflow definition and advertised model defaults
apheris-foundry workflows docs --workflow <id> Read the workflow's documentation, as its package ships it (--json includes the content digest)
apheris-foundry workflows models --workflow <id> List models, weights, and default prediction parameters advertised by Hub (--json includes full metadata)
apheris-foundry workflows graph --workflow <id> Show the workflow DAG
apheris-foundry workflows run --workflow <id> [--name <name>] [--model-params <JSON|@file>] Submit a workflow run with Hub-schema-validated model parameters

Run instances (runs)

Command Description
apheris-foundry jobs list [--workflow <id>] List submitted jobs using server-side filters and bounded hydration
apheris-foundry jobs get --id <job-id> Inspect a job and its artifacts
apheris-foundry jobs update --id <job-id> [--name <name>] [--tag <tag> ... | --clear-tags] Edit metadata; omitted fields stay unchanged, tags replace all existing tags, and --name "" / --clear-tags clear fields
apheris-foundry jobs logs --id <job-id> Print logs for a job
apheris-foundry jobs error --id <job-id> Print the saved error for a failed job
apheris-foundry jobs download --id <job-id> Download results for a completed job
apheris-foundry jobs cancel --id <job-id> Cancel a pending or running job
apheris-foundry jobs delete --id <job-id> Permanently delete a terminal job and its stored data (--yes skips confirmation)

Use --help on any command for the full option reference and examples:

apheris-foundry workflows run --help
apheris-foundry jobs get --help

--name optionally names the run. Omitted or blank names submit an unnamed run.

--model-params accepts one JSON object. Use an inline object for short overrides, or prefix a JSON filename with @ to load the object from that file. Before submitting the run, the CLI retrieves the selected model version, weight, and capability schema from Hub and validates the object. Use workflows models to discover available model IDs and weights.

License

This package is licensed under the Apheris Foundry Software License. The full license text is also included in every published wheel as LICENSE.

Support

Contact support@apheris.com for access and deployment assistance.

Model weights (weights)

weights list lists deployed weights visible to the caller. Filter with --run-id, --model, --version or --task; model and version together also include vendor weights. --include-deleted includes historical records whose files are gone. --json preserves the API response.

apheris-foundry weights list --model aqcell --version aqcell:0.2.0 --json
apheris-foundry weights deploy --run-id <job-id> --path <run-relative-bundle-directory> --json
apheris-foundry workflows models --workflow aqcell --json
apheris-foundry workflows run --workflow aqcell --input ./input --weight <weight-id>

weights deploy registers a job artifact through Hub; it does not upload local weights. Use the path shown by jobs get, including the complete directory for AQCell bundles. Optional --task, --description, --derived-from and repeated --capability values accompany the request; Hub derives and validates model identity and ownership. --dry-run true weights deploy ... prints the request without submission. Retain the producing job and verify selection in the target workflow's model catalog before reuse.

Workflow skill responses may include shared presentation skills. Installation validates their content digests and installs them alongside the workflow skill; --all deduplicates equal versions and rejects conflicting ones. The shared source lives in foundry-cli and travels through Hub, not in this Python package.

The optional skill resources field currently carries only vocabulary.json. The CLI checks its name, UTF-8 byte limit, SHA-256 and JSON syntax before writing it beside the workflow SKILL.md. A malformed resource prevents installation. Older Hubs omit resources; updated AQCell skills state that preflight vocabulary is then unavailable rather than claiming membership was checked.

Public compound resolution (no Hub required)

apheris-foundry tools compounds resolve --name gemcitabine --json
apheris-foundry tools compounds resolve --cid 60750 --json
apheris-foundry tools compounds resolve --cid 60750 --offline --json

Resolves exact PubChem records with isomeric SMILES, InChIKey, source and timestamp. Only public names/CIDs should be sent; supplied proprietary structures need no public lookup. Ambiguous matches stop for clarification. No automatic parent/salt substitution. Responses are cached locally for 30 days; offline use marks stale entries. Use --refresh for fresh evidence or --cache-dir to isolate a project cache. The shared chemical-identity and foundry-scientific-integrity skills also work without Hub through documented official APIs.

jobs download preserves the workflow's result.json; the CLI's download manifest is cli-result.json. A conflicting artifact with that name is rejected rather than overwritten. --result-view controls that CLI manifest's detail.

Querying jobs

Find jobs by name, ID, or tag:

apheris-foundry jobs list --search 'screen_1'
apheris-foundry jobs list --workflow predict --status succeeded --limit 10

Search is literal (no wildcards). Workflow and status filters can be repeated. The default shows up to 30 jobs; use --limit -1 only when you need all matches. Add --json for scripts: total counts all matches, and incomplete indicates that fewer rows were returned.

See the usage guide for model, date, duration, and sorting options, which are hidden from default help.

Metadata

Release files for apheris-foundry-cli 0.10.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for apheris-foundry-cli 0.10.0
File Size Uploaded Provenance
apheris_foundry_cli-0.10.0.tar.gz 131.5 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for apheris-foundry-cli 0.10.0
File Interpreter ABI Platform
apheris_foundry_cli-0.10.0-py3-none-any.whl Python 3 none any Details

Total release size: 224.6 kB

Release files / apheris_foundry_cli-0.10.0.tar.gz

Download URL apheris_foundry_cli-0.10.0.tar.gz
Size 131.5 kB
Tags Source
SHA-256 checksum
How to use checksums
c1497edd40cc0b33a57afa5767e64feabc611de93974a7a7cf11d657b5fdd045
BLAKE2b-256 checksum
How to use checksums
edce2781cb374937eede70f2c8a42345796e82c0ef5dbb2b0b727eda6d38159b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Oct 20, 2026.

Transparency log

Release files / apheris_foundry_cli-0.10.0-py3-none-any.whl

Download URL apheris_foundry_cli-0.10.0-py3-none-any.whl
Size 93.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a7a42cc4aa8712caf045832ea32b4ac26da932a9f9896267922824b4dc389278
BLAKE2b-256 checksum
How to use checksums
2ee83689d35dffd1fa352c6f423260b45d13cbdea0727ab8ccf7a756461afa9f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Oct 20, 2026.

Transparency log

Security for apheris-foundry-cli 0.10.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.

Select from 2 files

Attestation for apheris_foundry_cli-0.10.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 Oct 20, 2026.

Transparency log

A 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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page