# Apps

## Core App Classes[[reachy_mini.ReachyMiniApp]]

#### reachy_mini.ReachyMiniApp[[reachy_mini.ReachyMiniApp]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/app.py#L27)

Base class for Reachy Mini applications.

runreachy_mini.ReachyMiniApp.runhttps://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/app.py#L153[{"name": "reachy_mini", "val": ": ReachyMini"}, {"name": "stop_event", "val": ": Event"}]- **reachy_mini** (ReachyMini) -- The Reachy Mini instance to interact with.
- **stop_event** (threading.Event) -- An event that can be set to stop the app gracefully.0
Run the main logic of the app.

**Parameters:**

reachy_mini (ReachyMini) : The Reachy Mini instance to interact with.

stop_event (threading.Event) : An event that can be set to stop the app gracefully.
#### stop[[reachy_mini.ReachyMiniApp.stop]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/app.py#L164)

Stop the app gracefully.
#### wrapped_run[[reachy_mini.ReachyMiniApp.wrapped_run]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/app.py#L100)

Wrap the run method with Reachy Mini context management.

#### reachy_mini.apps.manager.AppManager[[reachy_mini.apps.manager.AppManager]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/manager.py#L57)

Manager for Reachy Mini apps.

closereachy_mini.apps.manager.AppManager.closehttps://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/manager.py#L74[]
Clean up the AppManager, stopping any running app.
#### current_app_status[[reachy_mini.apps.manager.AppManager.current_app_status]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/manager.py#L338)

Get the current status of the app.
#### install_new_app[[reachy_mini.apps.manager.AppManager.install_new_app]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/manager.py#L389)

Install a new app by name.
#### is_app_running[[reachy_mini.apps.manager.AppManager.is_app_running]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/manager.py#L94)

Check if an app is currently running or stopping.
#### list_all_available_apps[[reachy_mini.apps.manager.AppManager.list_all_available_apps]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/manager.py#L345)

List available apps while preserving curated-only entries.
#### list_available_apps[[reachy_mini.apps.manager.AppManager.list_available_apps]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/manager.py#L373)

List available apps for given source kind.
#### remove_app[[reachy_mini.apps.manager.AppManager.remove_app]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/manager.py#L400)

Remove an installed app by name.
#### restart_current_app[[reachy_mini.apps.manager.AppManager.restart_current_app]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/manager.py#L324)

Restart the current app.
#### start_app[[reachy_mini.apps.manager.AppManager.start_app]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/manager.py#L103)

Start the app as a subprocess, raises RuntimeError if an app is already running.
#### stop_current_app[[reachy_mini.apps.manager.AppManager.stop_current_app]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/manager.py#L253)

Stop the current app subprocess.
#### update_app[[reachy_mini.apps.manager.AppManager.update_app]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/manager.py#L411)

Update an installed app by reinstalling it from HuggingFace.

This preserves the original source info and reinstalls to get the latest version.

**Parameters:**

app_name : Name of the app to update.

logger : Logger for progress output.

## App Management[[reachy_mini.apps.manager.AppState]]

#### reachy_mini.apps.manager.AppState[[reachy_mini.apps.manager.AppState]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/manager.py#L24)

Status of a running app.

#### reachy_mini.apps.manager.AppStatus[[reachy_mini.apps.manager.AppStatus]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/manager.py#L34)

Status of an app.

#### reachy_mini.apps.manager.RunningApp[[reachy_mini.apps.manager.RunningApp]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/manager.py#L43)

Information about a running app.

## App Information[[reachy_mini.apps.AppInfo]]

#### reachy_mini.apps.AppInfo[[reachy_mini.apps.AppInfo]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/__init__.py#L18)

Metadata about an app.

#### reachy_mini.apps.SourceKind[[reachy_mini.apps.SourceKind]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/__init__.py#L8)

Kinds of app source.

## App Assistant

### Assistant Functions[[reachy_mini.apps.assistant.validate_app_name]]

#### reachy_mini.apps.assistant.validate_app_name[[reachy_mini.apps.assistant.validate_app_name]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/assistant.py#L21)

Validate the app name.

#### reachy_mini.apps.assistant.is_git_repo[[reachy_mini.apps.assistant.is_git_repo]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/assistant.py#L36)

Check if the given path is inside a git repository.

#### reachy_mini.apps.assistant.validate_location[[reachy_mini.apps.assistant.validate_location]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/assistant.py#L48)

Validate the location where to create the app project.

#### reachy_mini.apps.assistant.validate_location_and_git_repo[[reachy_mini.apps.assistant.validate_location_and_git_repo]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/assistant.py#L57)

Validate the location where to create the app project, ensuring it's not in a git repo.

#### reachy_mini.apps.assistant.create_cli[[reachy_mini.apps.assistant.create_cli]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/assistant.py#L68)

Create a new Reachy Mini app project using a CLI.

#### reachy_mini.apps.assistant.create[[reachy_mini.apps.assistant.create]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/assistant.py#L131)

Create a new Reachy Mini app project with the given name at the specified path.

**Parameters:**

console (Console) : The console object for printing messages.

app_name (str) : The name of the app to create.

app_path (Path) : The directory where the app project will be created.

**Returns:**

`Path`

The path to the created app project.

#### reachy_mini.apps.assistant.install_app_with_progress[[reachy_mini.apps.assistant.install_app_with_progress]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/assistant.py#L216)

Install the app in a temporary virtual environment with a progress spinner.

#### reachy_mini.apps.assistant.check[[reachy_mini.apps.assistant.check]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/assistant.py#L260)

Check an existing Reachy Mini app project.

**Parameters:**

console (Console) : The console object for printing messages.

app_path (str) : Local path to the app to check.

#### reachy_mini.apps.assistant.request_app_addition[[reachy_mini.apps.assistant.request_app_addition]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/assistant.py#L576)

Request to add the new app to the official Reachy Mini app store.

#### reachy_mini.apps.assistant.try_to_push[[reachy_mini.apps.assistant.try_to_push]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/assistant.py#L660)

Try to push changes to the remote repository.

#### reachy_mini.apps.assistant.publish[[reachy_mini.apps.assistant.publish]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/assistant.py#L710)

Publish the app to the Reachy Mini app store.

**Parameters:**

console (Console) : The console object for printing messages.

app_path (str) : Local path to the app to publish.

commit_message (str) : Commit message for the app publish.

official (bool) : Request to publish the app as an official Reachy Mini app.

no_check (bool) : Don't run checks before publishing the app.

private (bool | None) : If True, make private. If False, make public. If None, prompt.

## App Sources[[reachy_mini.apps.sources.hf_auth.save_hf_token]]

#### reachy_mini.apps.sources.hf_auth.save_hf_token[[reachy_mini.apps.sources.hf_auth.save_hf_token]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/sources/hf_auth.py#L396)

Save a HuggingFace access token securely.

Validates the token against the Hugging Face API and, if valid,
stores it using the standard Hugging Face authentication mechanism
for reuse across sessions.

**Parameters:**

token : The HuggingFace access token to save.

**Returns:**

`A dict containing`

- "status": "success" or "error"
- "username": the associated Hugging Face username if successful
- "message": an error description if unsuccessful

#### reachy_mini.apps.sources.hf_auth.get_hf_token[[reachy_mini.apps.sources.hf_auth.get_hf_token]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/sources/hf_auth.py#L442)

Get stored HuggingFace token.

**Returns:**

The stored token, or None if no token is stored.

#### reachy_mini.apps.sources.hf_auth.delete_hf_token[[reachy_mini.apps.sources.hf_auth.delete_hf_token]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/sources/hf_auth.py#L452)

Delete stored HuggingFace token(s).

Note: logout() without arguments logs out from all saved access tokens.

#### reachy_mini.apps.sources.hf_auth.check_token_status[[reachy_mini.apps.sources.hf_auth.check_token_status]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/sources/hf_auth.py#L466)

Check if a token is stored and valid.

**Returns:**

Status dict with is_logged_in and username.

#### reachy_mini.apps.sources.hf_space.list_available_apps[[reachy_mini.apps.sources.hf_space.list_available_apps]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/sources/hf_space.py#L130)

List apps available on Hugging Face Spaces.

#### reachy_mini.apps.sources.hf_space.list_all_apps[[reachy_mini.apps.sources.hf_space.list_all_apps]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/sources/hf_space.py#L164)

List all apps available on Hugging Face Spaces (including private ones when authenticated).

#### reachy_mini.apps.sources.local_common_venv.get_app_site_packages[[reachy_mini.apps.sources.local_common_venv.get_app_site_packages]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/sources/local_common_venv.py#L121)

Public API to get the site-packages directory for a given app's venv.

For separate venvs: returns the app's venv site-packages
For shared environment (SDK mode): returns the current environment's site-packages

#### reachy_mini.apps.sources.local_common_venv.get_app_python[[reachy_mini.apps.sources.local_common_venv.get_app_python]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/sources/local_common_venv.py#L140)

Get the Python executable path for an app (cross-platform).

For separate venvs: returns the app's venv Python
For shared environment: returns the current Python interpreter

#### reachy_mini.apps.sources.local_common_venv.list_available_apps[[reachy_mini.apps.sources.local_common_venv.list_available_apps]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/sources/local_common_venv.py#L299)

List apps available from entry points or separate venvs.

#### reachy_mini.apps.sources.local_common_venv.install_package[[reachy_mini.apps.sources.local_common_venv.install_package]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/sources/local_common_venv.py#L415)

Install a package given an AppInfo object, streaming logs.

**Parameters:**

app : AppInfo with package details.

logger : Logger for progress output.

wireless_version : Whether running on wireless version.

desktop_app_daemon : Whether running as desktop app daemon.

force_reinstall : If True, force reinstall even if already installed (for updates).

#### reachy_mini.apps.sources.local_common_venv.get_app_module[[reachy_mini.apps.sources.local_common_venv.get_app_module]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/sources/local_common_venv.py#L666)

Get the module name for an app without loading it (for subprocess execution).

#### reachy_mini.apps.sources.local_common_venv.uninstall_package[[reachy_mini.apps.sources.local_common_venv.uninstall_package]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/sources/local_common_venv.py#L699)

Uninstall a package given an app name.

## App Utilities[[reachy_mini.apps.utils.running_command]]

#### reachy_mini.apps.utils.running_command[[reachy_mini.apps.utils.running_command]]

[Source](https://github.com/pollen-robotics/reachy_mini/blob/v1.8.1/src/reachy_mini/apps/utils.py#L9)

Run a shell command and stream its output to the provided logger.

**Parameters:**

command : The command to run as a list of strings.

logger : Logger instance for output streaming.

env : Optional environment variables dict. If None, inherits current environment.

