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.4.0.tar.gz (15.3 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.4.0-py3-none-any.whl (15.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: horizondesk_sdk-1.4.0.tar.gz
  • Upload date:
  • Size: 15.3 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.4.0.tar.gz
Algorithm Hash digest
SHA256 6c4deb83ea26930bcc639528cb113b30f8ee272a52ef83398ef11694d719e30d
MD5 2f8382d2ed8b0157bf57888a56360a9b
BLAKE2b-256 afda7b4a7512ead6758193fdf93403ee4a0a0ab283573e64229ac537fe4a1a43

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for horizondesk_sdk-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2ffbca1ffe66f5684e7de1c08aaec7b5df10c0f0c835fa017a371eb9cf01682e
MD5 330c022b06034baaf39fef4d430819ec
BLAKE2b-256 bb8c66fb05ae0d4ff4f041919796f354ddb2c5855e7685af3ec03df29ec114db

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