OpenParable
Skip to content
← Back to skills

Horse Providers

DevOps & Security
horse-providers

Horse Providers is an Agent Skill for devops & security published in the HashLoad/horse repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.

Guide to selecting and configuring Horse server adapters (Indy console, CGI, ISAPI, Daemon, HTTP.sys).

View on GitHub ↗
QUICK START

How to use this skill

Bring this guide into your coding agent with a prompt tailored to the tool you use.

  1. Open your project in Codex.
  2. Copy and paste the prompt below.
  3. Review files and risks before approving any action.
Prompt to paste
Inspect the Agent Skill at https://github.com/HashLoad/horse/blob/HEAD/doc/skills/horse-providers/SKILL.md and all supporting files. Report provenance, permissions, scripts, dependencies, and security risks. Propose an exact installation into .agents/skills/horse-providers, but wait for my approval before writing files or running scripts.

Copying this prompt does not install or run the skill. Review third-party files before use.

Horse Providers

Available Provedores (Server Adapters)

Horse supports multiple execution providers. To change the provider, simply include the corresponding unit in your .dpr uses clause.

  • Horse.Provider.Console (Default - Indy-based): Launches a standalone console application listening on a TCP port. Best for local development and microservices.
  • Horse.Provider.Daemon: Integrates Horse with Windows Services or Linux Daemons.
  • Horse.Provider.HTTPsys: Integrates with the native Windows HTTP Server API (HTTP.sys). Provides high performance and native SSL/HTTPS support on Windows without needing Apache/Nginx.
  • Horse.Provider.CGI / Horse.Provider.ISAPI: For deployment inside IIS (Internet Information Services) or Apache on Windows.
  • Horse.Provider.Apache: Native Apache web server module.

Configuration Example

program MyAPI;

{$APPTYPE CONSOLE}

uses
  // Include the target provider unit. Only ONE provider should be active.
  Horse,
  Horse.Provider.HTTPsys; 

begin
  THorse.Get('/health',
    procedure(Req: THorseRequest; Res: THorseResponse; Next: TProc)
    begin
      Res.Send('healthy');
    end);

  // Starts the HTTPsys server
  THorse.Listen(8080);
end.