skills.md
Are you an agent?

Self-Hosting

skills.md can run entirely on infrastructure you control. Self-hosting gives your company a private catalog, private skills, and full ownership of run data, while keeping the same CLI, MCP server, and agent integrations.

What you run

A self-hosted deployment is the same server that powers the managed service:

  • The HTTP server that serves the dashboard and the REST API.
  • A PostgreSQL database as the source of truth (tenants, skills, runs, billing).
  • Object storage for run artifacts.
  • A runner that executes skill runs.

Requirements

  • A container host (any platform that can run the Docker image built from this repository's Dockerfile).
  • A PostgreSQL 15+ database, reachable from the server.
  • Object storage (S3-compatible) for artifacts.
  • A public hostname you control, for example https://your-server.example.

Configure

Point the server at your database and storage with environment variables:

DATABASE_URL=postgres://DB_USER:DB_PASSWORD@db.your-server.example:5432/skills
APP_URL=https://your-server.example
S3_ASSETS_BUCKET=your-artifacts-bucket
S3_EXPORTS_BUCKET=your-exports-bucket
S3_INPUTS_BUCKET=your-inputs-bucket

S3_INPUTS_BUCKET stores hosted run input files, client-uploaded via presigned URLs and consumed by the runner.

When DATABASE_URL is set the server automatically mounts the platform API at /api/v1/* and /api/auth/* and applies row-level security for tenant isolation.

On the client side, the public @hasna/skills package configures through JSON files — a project-local ./skills.config.json or a global ~/.hasna/skills/config.json (per src/lib/config.ts); the apiUrl used to reach this server can also be set via the SKILLS_API_URL environment variable. The server itself uses the DATABASE_URL and S3_*_BUCKET names above.

Point agents at your server

Once your deployment is reachable, configure the CLI and agents to use it instead of the managed endpoint:

skills config set apiUrl https://your-server.example
skills auth login

MCP hosts and other agents use the same base URL, so no per-agent changes are required beyond the endpoint.

Support

For a guided rollout, private skills onboarding, or an enterprise agreement, contact support@hasna.com.

bun install -g @hasna/skills && skills auth signup