Skip to main content

SDK and CLI for building Horizon Desk AI Plugins

Project description

horizondesk SDK

This SDK provides the official interface for building plugins for Horizon Desk. It allows developers to extend OmniAgent's capabilities with custom tools and connect external AI workers.

Installation

pip install horizondesk

Quick Start: Create your first plugin

1. Initialize

Run the following command to scaffold a new plugin project:

horizondesk init MyAmazingPlugin

2. Define a Tool

Edit main.py to create your own tools:

from horizondesk import BaseTool, HorizonPlugin

class WeatherTool(BaseTool):
    def __init__(self):
        super().__init__("GetWeather", "Gets current weather for a city. Input: 'city'.")

    def execute(self, city=None, payload=None):
        return f"It is 22°C and sunny in {city}."

def register_tools(agent):
    plugin = HorizonPlugin("MyAmazingPlugin")
    plugin.add_tool(WeatherTool())
    plugin.register_all(agent)

3. Run the Workshop

Launch the high-fidelity GUI Workshop to test your plugin:

horizondesk run horizon_plugin.raf

Security & Privacy

  • SecretStorage: Always use SecretStorage.get_secret("KEY") to access API keys. Do not hardcode them.
  • Redaction: Use SecretStorage.redact_pii(text) before sending data to external workers.
  • Auditing: All plugin tools are visible to the user and subject to manual intervention (Alt+F7).

Connecting External Agents

To link your own AI worker, create a tool that performs a secure HTTP request to your backend:

import requests
from horizondesk import BaseTool, SecretStorage

class ExternalBrainBridge(BaseTool):
    def __init__(self):
        super().__init__("AskMyBot", "Consults my specialized AI model.")

    def execute(self, **kwargs):
        api_key = SecretStorage.get_secret("MY_BOT_API_KEY")
        response = requests.post("https://my-api.com/v1/chat", json=kwargs, headers={"Auth": api_key})
        return response.json().get("reply")

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-1.0.0.tar.gz (8.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-1.0.0-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

Details for the file horizondesk-1.0.0.tar.gz.

File metadata

  • Download URL: horizondesk-1.0.0.tar.gz
  • Upload date:
  • Size: 8.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for horizondesk-1.0.0.tar.gz
Algorithm Hash digest
SHA256 6defc702e773cfc1bb904858c86cbd7267c72316c2e5bb2cf7981525ba7b2b2f
MD5 615a4320ec0f609621c121e8d1b1c6b9
BLAKE2b-256 6572e7e06852d8d67b9b14897c24b79373a354a4a5539aaa8d996817513e1d02

See more details on using hashes here.

File details

Details for the file horizondesk-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: horizondesk-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 9.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for horizondesk-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 80fac06cbd7be35c9475785a5b0078d50105b7543e532ad50b9d534f7b03b5b5
MD5 fa0705b4e11771b40c843623a0edf8b9
BLAKE2b-256 e92f6a7ac0eee2916030cd86c23b688c8526bca84589fb25a4122ca98902f44c

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