Skip to main content

SDK and CLI for building Horizon Desk AI Plugins

Project description

Horizon Desk SDK v1.3.0 🚀

The official Python SDK for building, testing, and publishing plugins for Horizon Desk.

What's New in v1.3.0

  • Externally Hosted Plugins: Support for plugins hosted on custom local ports (e.g., Flask, Django backends) using the hosted_url manifest field.
  • Package Renaming: The SDK is now officially horizondesk_sdk.
  • Strict Navigation Policy: Built-in support for the new Horizon Desk security model which forces external links to the system browser.

Installation

pip install horizondesk_sdk

Quick Start

  1. Initialize:

    horizondesk_sdk init MyPlugin
    
  2. Develop: Edit main.py and add your tools. Use HorizonPlugin to register them.

  3. Link UI: Set custom_ui=True and provide a custom_ui_path (for static HTML) or hosted_url (for Flask/Django).


CLI Command Reference

Execute commands using horizondesk_sdk <command>.

Command Arguments Description
init <name> Scaffolds a new plugin directory with a template.
run <file.raf> Launches the Workshop GUI to visually debug your plugin.
test [--prompt] Runs a rapid CLI test using a MockAgent.
install Installs the current plugin into the local Horizon Desk app.
login Authenticates your workstation with the Rapnss Store.
logout Clears local authentication credentials.
whoami Displays current developer profile and ad balance.
publish Packages and uploads your plugin to the Horizon Store.
status Lists your published plugins and their approval status.

Manifest Reference (horizon_plugin.raf)

The .raf file is a JSON manifest that defines your plugin's identity and capabilities.

Field Type Required Description
name string Yes The unique name of your plugin (PascalCase preferred).
version string Yes Semantic version (e.g., "1.3.0").
developer string Yes Your developer name or handle.
description string Yes A short summary of what the plugin does.
entry_point string Yes The main Python file (usually "main.py").
category string No general, utilities, productivity, creative, system.
custom_ui boolean No Set to true to enable a sidebar tab.
custom_ui_path string No Relative path to the folder containing index.html.
hosted_url string No (New in v1.3.0) Local URL for Flask/Django UIs (e.g. http://localhost:5000).
icon string No Relative path to a 128x128 PNG sidebar icon.

Security & Best Practices

  • SecretStorage: Never hardcode API keys. Use SecretStorage.get_secret("MY_KEY").
  • PII Redaction: Use SecretStorage.redact_pii(text) to sanitize data before sending to external LLMs.
  • Timeouts: Always use timeout= in network requests (e.g., requests.get(url, timeout=10)).

Support

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

horizondesk_sdk-1.3.0.tar.gz (14.8 kB view details)

Uploaded Source

Built Distribution

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

horizondesk_sdk-1.3.0-py3-none-any.whl (15.1 kB view details)

Uploaded Python 3

File details

Details for the file horizondesk_sdk-1.3.0.tar.gz.

File metadata

  • Download URL: horizondesk_sdk-1.3.0.tar.gz
  • Upload date:
  • Size: 14.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for horizondesk_sdk-1.3.0.tar.gz
Algorithm Hash digest
SHA256 cc26e4c6fe4903b468e99b6bd2b8a347a70332240276590e2cb16b2a1fab4b8c
MD5 26df7bb8b48d6eda0a5796ad2b809c86
BLAKE2b-256 9f993dfae34dd59e2fb0d4f645d782bee3aa891982700f5daedc5dae69d4ad9c

See more details on using hashes here.

File details

Details for the file horizondesk_sdk-1.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for horizondesk_sdk-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a2081175547fcd7af8ed362e8103b8c96f3eacf0c8678dee4495f7c5532e09cb
MD5 c01f6853ad3b8ef737f1aaa48c524301
BLAKE2b-256 14f673584cab58f0b0bea414ba9f1045adf9d126728bcb71258a7a1f59eb870a

See more details on using hashes here.

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