# List and inspect apps ## Goal Find out which PlayMolecule apps are installed, what each one does, and what parameters it accepts. ## Minimal example ```python from playmolecule import describe_apps describe_apps() ``` Prints each app's qualified import path and one-line description. ## Get the data as a dict ```python apps = describe_apps(as_dict=True) for path, info in apps.items(): print(path, "—", info["description"]) ``` The keys are fully qualified import paths (`playmolecule.apps...`); the values currently expose only `description`. Use this when you need to drive a UI or a config file rather than print to a terminal. ## Inspect one app Once imported, each app is a normal Python function with a real signature and docstring: ```python from playmolecule.apps import proteinprepare help(proteinprepare) # parameters + outputs + examples ``` In IPython, `proteinprepare?` is equivalent. The docstring lists every parameter, its type, default, and description, plus the outputs the app writes and any example calls — everything you need to call the app correctly. ## See available versions The versioned submodules live under the app's namespace: ```python import playmolecule.apps.proteinprepare as pp [name for name in dir(pp) if name.startswith("v")] # ['v1', 'v2', ...] ``` The bare `proteinprepare` symbol aliases the latest version; everything else is at `pp.v1`, `pp.v2`, etc. See [Select an app version](select-an-app-version.md). ## Gotchas - `describe_apps` only sees apps that loaded successfully at import time. If `PM_REGISTRIES` is unreachable (network down, wrong credentials) the function returns nothing — check the `playmolecule` logger output, or set `PM_LOG_LEVEL=DEBUG` to see why. - A custom app whose manifest fails to parse is silently skipped at import time and logged as an error. `describe_apps` won't list it; check the import-time log to spot the problem. - The descriptions you see are the first line of each app function's docstring. If you maintain an app, keep the first line tight. ## See also - {py:func}`~playmolecule.describe_apps` - [Select an app version](select-an-app-version.md) - [Apps and manifests](../explanation/apps-and-manifests.md)