S

self-host

ajnart/self-host · v1.3.2 · aea01e9 · Agent Skills

by ajnartScan grade: Acceptable

Agent skill and CLI that lets your agent install self-hosted apps on your own hardware and set them up (admin accounts, API keys, apps connected to each other), asking before each step

Protect this install with HOL Guard

Guard checks the skills and MCP servers a plugin adds on your machine and asks you before a risky action runs. The scores above are free, and no plan changes them.

Is self-host a fit?

From the plugin's manifest and HOL's scan. Anything the plugin does not declare is shown as not declared.

Works with

  • Agent Skills
  • 5 skills

Before you install

Sign-in
Not declared
Declared access
Not declared
License
Not declared

Check before relying on it

  • Some security checks did not finish: Cisco skill scan. See the evidence
  • 1 medium finding from the scan. See the evidence
  • The publisher has not verified ownership on HOL.
  • No license declared in the manifest.

What is self-host?

self-host is a published agent skills plugin for AI coding agents in the Agent Skills ecosystem, developed by ajnart and distributed through the HOL AI plugin registry. Agent skill and CLI that lets your agent install self-hosted apps on your own hardware and set them up (admin accounts, API keys, apps connected to each other), asking before each step.

Canonical slug
ajnart/self-host
Version
v1.3.2 · aea01e9 · updated Nov 4, 2026

Registry snapshot

Support the project
GitHub SponsorsKo-fi
Owner verification
Not verified
Scanner
HOL plugin scanner
Security result
Needs review
Digest verified
Yes
5 bundled skillsRead, copy or download each SKILL.mdOpen skills

Trust and security

Trust & reputation

74

HOL Trust Score

Per-metric points (0–100 each) combined via a weighted average into the overall score.

Installability
100/100
Maintenance
100/100
MCP server setup
100/100
Plugin Security
76/100
Provenance
70/100
Publisher Quality
75/100

Provenance

Plugin root
.
Source repo
https://github.com/ajnart/self-host
Source commit
aea01e90507b…
Publisher verified
No
Owner verified
Not owner verified
Agent Plugins 1.0
Not detected

Continuous scanner CI not detected

This plugin remains listed. Its overall trust score is reduced by 10% because security checks are not maintained in the source repository's CI.

Optional: maintain the scanner in the source repository's CI to receive the full trust score. Listing does not require that change.

README badge not detected

Plugin owners can add the HOL badge to the repository README from Guard Plugins. Distribution, not security evidence. It adds a 2% engagement adjustment to the overall trust score and never changes the security result.

Needs review
Security result
76
Security score
0
High findings
Provider
codex-plugin-scanner
Grade
C · Acceptable
Version
3.24.2
cisco-skill-scanner: failedcisco-mcp-scanner: skipped

Manifest Validation

21/31

9 checks

Security

16/16

9 checks

Operational Security

0/6

5 checks

Best Practices

9/12

5 checks

Marketplace

N/A

3 checks · not applicable

Skill Security

5/5

4 checks

Code Quality

10/10

2 checks

Published advisories

None matched in GitHub security advisories, checked . This covers published advisories only, not problems nobody has reported.

GitHub security advisories are those the source repository has published.

Findings

mediumoperational-securityDEPENDENCY_LOCKFILE_MISSING

package.json is present without a corresponding lockfile or pinned dependency snapshot.

Commit a lockfile or use fully pinned requirements for reproducible dependency resolution.

lowoperational-securityDEPENDABOT_MISSING

Automation or dependency surfaces exist, but .github/dependabot.yml is missing.

Add Dependabot updates for GitHub Actions and dependency manifests.

infomanifest-validationPLUGIN_JSON_RECOMMENDED_AUTHOR

The manifest is missing the documented recommended field "author".

Add "author" to strengthen the plugin manifest metadata.

infomanifest-validationPLUGIN_JSON_RECOMMENDED_LICENSE

The manifest is missing the documented recommended field "license".

Add "license" to strengthen the plugin manifest metadata.

infomanifest-validationPLUGIN_JSON_RECOMMENDED_KEYWORDS

The manifest is missing the documented recommended field "keywords".

Add "keywords" to strengthen the plugin manifest metadata.

infomanifest-validationPLUGIN_JSON_INTERFACE_SHORTDESCRIPTION

The interface object is missing a valid "shortDescription" value.

Add a valid "shortDescription" field to the interface metadata.

infomanifest-validationPLUGIN_JSON_INTERFACE_LONGDESCRIPTION

The interface object is missing a valid "longDescription" value.

Add a valid "longDescription" field to the interface metadata.

infomanifest-validationPLUGIN_JSON_INTERFACE_CAPABILITIES

The interface object is missing a valid "capabilities" value.

Add a valid "capabilities" field to the interface metadata.

infomanifest-validationPLUGIN_JSON_INTERFACE_ASSET_WEBSITEURL

The interface field "websiteURL" must use HTTPS or point to a safe in-repo asset.

Update "websiteURL" to use HTTPS or an existing relative asset path.

infomanifest-validationPLUGIN_JSON_INTERFACE_ASSET_PRIVACYPOLICYURL

The interface field "privacyPolicyURL" must use HTTPS or point to a safe in-repo asset.

Update "privacyPolicyURL" to use HTTPS or an existing relative asset path.

infomanifest-validationPLUGIN_JSON_INTERFACE_ASSET_TERMSOFSERVICEURL

The interface field "termsOfServiceURL" must use HTTPS or point to a safe in-repo asset.

Update "termsOfServiceURL" to use HTTPS or an existing relative asset path.

infomanifest-validationPLUGIN_JSON_INTERFACE_ASSET_COMPOSERICON

The interface field "composerIcon" must use HTTPS or point to a safe in-repo asset.

Update "composerIcon" to use HTTPS or an existing relative asset path.

infomanifest-validationPLUGIN_JSON_INTERFACE_ASSET_LOGO

The interface field "logo" must use HTTPS or point to a safe in-repo asset.

Update "logo" to use HTTPS or an existing relative asset path.

infomanifest-validationPLUGIN_JSON_INTERFACE_ASSET_SCREENSHOTS

The interface field "screenshots" must use HTTPS or point to a safe in-repo asset.

Update "screenshots" to use HTTPS or an existing relative asset path.

infobest-practicesCODEXIGNORE_MISSING

A .codexignore file helps prevent accidental inclusion of local artifacts and secrets.

Add a .codexignore file with generated assets, local state, and secret paths.

Install guidance

Install in Source

Install v1.3.2 from a native release archive or pinned source.

Install guide
  1. 1

    Download the release archive

    Use the v1.3.2 archive. That tag is a different source revision from later commits on the default branch.

    shell
  2. 2

    Follow the publisher install guide

    https://github.com/ajnart/self-host/blob/v1.3.2/docs/INSTALL.md

Did setup work in Source?

No setup reports for Source yet. Self-reported by signed-in visitors. Copying a command is not counted, and most installs are never reported.

Attested installs: Fewer than 10 attested installs of this plugin in week 2026-W45, so no number is shown. Counted from opt-in HOL Guard install reports, once per machine and runtime, and never mixed with the answers above. How install reports work.

Loading reviews

Plugin manifest

{
  "name": "self-host",
  "version": "1.3.2",
  "description": "Agent skill and CLI that lets your agent install self-hosted apps on your own hardware and set them up (admin accounts, API keys, apps connected to each other), asking before each step",
  "repository": "https://github.com/ajnart/self-host",
  "homepage": "https://github.com/ajnart/self-host",
  "interface": {
    "displayName": "self-host",
    "developerName": "ajnart",
    "category": "Agent Skills"
  },
  "skills": "./",
  "holReleaseTag": "v1.3.2",
  "holAssessedCommit": "aea01e90507beb385d795df99c132e5dbe47f714",
  "holManifestOrigin": "synthesized",
  "registryIndexVersion": 9
}

Skills

5 SKILL.md files ship with this plugin. Preview, copy, or download each one, then install them with the Skills CLI.

Share
skills-cli
  • add-container

    .claude/skills/add-container/SKILL.md

    DCM Container work. Use to add or edit a Container in dcm/src/tools/, including an issue labelled `container` and then `accepted`, and the pull request dcm-add-container.yml opens from it. A Container is a compose snippet DCM offers for a product the Catalog does not install. Catalog Apps go to edit-catalog.

    SKILL.md content is not in this snapshot. Open the raw file to copy it from the source repository.

  • edit-catalog

    .claude/skills/edit-catalog/SKILL.md

    Catalog edits in YAML or Go. Use for any task that adds an App, changes an App's image, port, Compose, env, notes or StandaloneGuide (even a one-line image bump), changes a Recipe, or hides or unhides an App. Each of these changes generated site and DCM data and the generated e2e inventory. DCM-only Containers go to add-container; Homarr wiring goes to docs/agents/homarr-integrations.md.

    SKILL.md content is not in this snapshot. Open the raw file to copy it from the source repository.

  • release-visual

    .claude/skills/release-visual/SKILL.md

    Generate the self-host release announcement visual when preparing a release or announcing newly added Apps. Discover added Apps between refs and render the approved Logo hub with pulses, rather than inventing a new layout.

    SKILL.md content is not in this snapshot. Open the raw file to copy it from the source repository.

  • self-host

    internal/skill/SKILL.md

    Load when the person wants to run or own apps on their own machine, replace a subscription (Netflix, Google Photos, Dropbox, a password manager), or asks about anything already set up with self-host, such as "where is my movie app?".

    SKILL.md content is not in this snapshot. Open the raw file to copy it from the source repository.

  • self-host

    skills/self-host/SKILL.md

    Load when the person wants to run or own apps on their own machine, replace a subscription (Netflix, Google Photos, Dropbox, a password manager), or asks about anything already set up with self-host, such as "where is my movie app?".

    SKILL.md content is not in this snapshot. Open the raw file to copy it from the source repository.

File inventory

.claude/skills/add-container/evals/add-linkding-container/case.yaml

file

323 bytes

0ff6be28a856bd00…

.claude/skills/add-container/evals/add-linkding-container/graders/01-container-added.md

file

121 bytes

7adac3ad718d974a…

.claude/skills/add-container/evals/add-linkding-container/graders/02-compose-conventions.md

file

251 bytes

12bebb9f6bd6041d…

.claude/skills/add-container/evals/add-linkding-container/graders/03-github-url-no-stars.md

file

113 bytes

80ce47f64b26343c…

.claude/skills/add-container/evals/add-linkding-container/graders/04-only-tools-changed.md

file

132 bytes

d01bbb8ddbd6ca10…

.claude/skills/add-container/evals/add-linkding-container/graders/05-dcm-tests-pass.md

file

152 bytes

1a7a1ff0f563dfdf…

.claude/skills/add-container/evals/add-linkding-container/graders/06-upstream-verified.md

file

253 bytes

0570e9af8840cff9…

.claude/skills/add-container/evals/add-linkding-container/prompt.md

file

269 bytes

3df8a3b951faa710…

.claude/skills/add-container/evals/paperless-already-an-app/case.yaml

file

321 bytes

efa9b5141b8fd151…

.claude/skills/add-container/evals/paperless-already-an-app/graders/01-no-new-container.md

file

113 bytes

28b677f550deed4a…

.claude/skills/add-container/evals/paperless-already-an-app/graders/02-explains-existing-app.md

file

164 bytes

f7fc3e825b113042…

.claude/skills/add-container/evals/paperless-already-an-app/graders/03-no-collateral-edits.md

file

122 bytes

5a3ae3590433fa77…

.claude/skills/add-container/evals/paperless-already-an-app/prompt.md

file

200 bytes

425cbee1566441b5…

.claude/skills/add-container/SKILL.md

skill

2,788 bytes

2a39073d79759b16…

.claude/skills/edit-catalog/evals/hide-peanut/case.yaml

file

357 bytes

eadb18cdace52eda…

.claude/skills/edit-catalog/evals/hide-peanut/graders/01-unavailable-entry.md

file

158 bytes

da5aab996e8ae0dd…

.claude/skills/edit-catalog/evals/hide-peanut/graders/02-app-package-kept.md

file

103 bytes

4e42c514ddb6cd04…

.claude/skills/edit-catalog/evals/hide-peanut/graders/03-generated-data-drops-peanut.md

file

125 bytes

b451d456a2b7233e…

.claude/skills/edit-catalog/evals/hide-peanut/graders/04-visible-counts-fall.md

file

146 bytes

b53763d83fe5d8b1…

.claude/skills/edit-catalog/evals/hide-peanut/graders/05-all-app-counts-unchanged.md

file

195 bytes

150986d6c94a2194…

.claude/skills/edit-catalog/evals/hide-peanut/graders/06-tui-goldens-updated.md

file

157 bytes

56a60eb0f4e3328c…

.claude/skills/edit-catalog/evals/hide-peanut/prompt.md

file

269 bytes

950dfa498d187884…

.claude/skills/edit-catalog/evals/new-app-memos/case.yaml

file

525 bytes

db90afa54b3e49e1…

.claude/skills/edit-catalog/evals/new-app-memos/graders/01-app-package-and-test.md

file

134 bytes

1e0fc8c97057b4ba…

.claude/skills/edit-catalog/evals/new-app-memos/graders/02-registered-by-registrygen.md

file

202 bytes

c9266e837c8d3c53…

.claude/skills/edit-catalog/evals/new-app-memos/graders/03-trap-note.md

file

77 bytes

2497d14785fe4e56…

.claude/skills/edit-catalog/evals/new-app-memos/graders/04-sitegen-declarations.md

file

291 bytes

468e0433936cc433…

.claude/skills/edit-catalog/evals/new-app-memos/graders/05-generated-data-regenerated.md

file

177 bytes

6a319a591a1e0d5a…

.claude/skills/edit-catalog/evals/new-app-memos/graders/06-counts-computed.md

file

136 bytes

7cd9d88c250c26d8…

.claude/skills/edit-catalog/evals/new-app-memos/graders/07-no-hand-kept-numbers.md

file

138 bytes

a1e4d48b8e0249c2…

.claude/skills/edit-catalog/evals/new-app-memos/graders/08-inventory-regenerated.md

file

177 bytes

3997ef0a9c451ff3…

.claude/skills/edit-catalog/evals/new-app-memos/graders/09-tui-goldens-updated.md

file

186 bytes

54720950d3c95176…

.claude/skills/edit-catalog/evals/new-app-memos/graders/10-description-rules.md

file

142 bytes

60aeed711afbdb60…

.claude/skills/edit-catalog/evals/new-app-memos/prompt.md

file

315 bytes

eaee218fdb9a72b8…

.claude/skills/edit-catalog/evals/reword-gotify-description/case.yaml

file

220 bytes

7411872aa3c4be11…

.claude/skills/edit-catalog/evals/reword-gotify-description/graders/01-go-description-changed.md

file

148 bytes

8fbaba7216e5f415…

.claude/skills/edit-catalog/evals/reword-gotify-description/graders/02-site-data-regenerated.md

file

100 bytes

ca7d22e00309df03…

.claude/skills/edit-catalog/evals/reword-gotify-description/graders/03-dcm-data-regenerated.md

file

100 bytes

43f0692d7411ac4f…

.claude/skills/edit-catalog/evals/reword-gotify-description/graders/04-no-count-or-fixture-edits.md

file

120 bytes

c0fca79d98b4d973…

.claude/skills/edit-catalog/evals/reword-gotify-description/graders/05-catalog-tests-pass.md

file

152 bytes

6f366edf280611d6…

.claude/skills/edit-catalog/evals/reword-gotify-description/prompt.md

file

234 bytes

19664c4d34c27334…

.claude/skills/edit-catalog/SKILL.md

skill

5,455 bytes

d9ee0963cf2afd5b…

.claude/skills/release-visual/SKILL.md

skill

3,282 bytes

974d4da689591e60…

.codex-plugin/plugin.json

plugin-manifest

591 bytes

6b9889fc5599f638…

AGENTS.md

file

7,236 bytes

a50e454c258d2990…

CLAUDE.md

file

9 bytes

a54ff182c7e8acf5…

go.mod

file

2,424 bytes

6b14cbe1efb2b993…

go.sum

file

13,580 bytes

7a3cb0dceaea6083…

internal/skill/guide_test.go

file

1,618 bytes

2b66a9358e74a393…

internal/skill/guide.md

file

64,843 bytes

ba794afbcba93c16…

internal/skill/install_test.go

file

6,039 bytes

567684cf72aed777…

internal/skill/install.go

file

7,852 bytes

8bf360c8f3669d93…

internal/skill/skill.go

file

1,947 bytes

717f8f4b858e5b3a…

internal/skill/SKILL.md

skill

720 bytes

b89bd3780a860164…

LICENSE

file

15,144 bytes

01cd5191f2c0ccdb…

package.json

file

657 bytes

5449d016d4fdf783…

README.md

file

37,400 bytes

32edb2d55e42e6b3…

README.md

file

37,400 bytes

32edb2d55e42e6b3…

SECURITY.md

file

1,151 bytes

84f8a3da08ec59e6…

skills/self-host/SKILL.md

skill

720 bytes

b89bd3780a860164…

self-host — Frequently asked questions

What is self-host?
self-host is an AI plugin in the HOL registry. Agent skill and CLI that lets your agent install self-hosted apps on your own hardware and set them up (admin accounts, API keys, apps connected to each other), asking before each step.
How do I install self-host?
Install self-host in your harness: Source — https://github.com/ajnart/self-host/releases/tag/v1.3.2; Any agent — npx [email protected] add ajnart/self-host. Full step-by-step guidance is on the HOL plugin page.
How do I install self-host in Source?
To install self-host in Source, start with https://github.com/ajnart/self-host/releases/tag/v1.3.2. The complete step-by-step install guide for Source is on the HOL plugin page.
How is the Trust Score for self-host computed?
self-host has a HOL Trust Score of 74 out of 100. The score is a weighted sum of six components from a static scan of the source, capped for high-severity findings and adjusted by two disclosed policies. Memberships and payments are not inputs, and a scan is not a safety guarantee. Full breakdown: https://hol.org/registry/plugins/ajnart%2Fself-host/trust
Who publishes self-host?
self-host is published by ajnart and listed on HOL.

Directory acceptance

Listed in 0 of 5 directory lists

Read from the list each directory publishes on GitHub. Being listed means the directory accepted the plugin; it is not a HOL security rating.

Lists last read . HOL re-reads them every day.

Submitting it? Check it against each directory's rules

Install signal

HOL cannot see every install. These are separate signals from different sources, so they are not added together. Counts under each floor show as <N.

Install commands issued here
<5
HOL Guard install commands issued from this listing, last 28 days.
Opt-in install reports
<10
Machines that reported installing it through HOL Guard in week 2026-W45. Reporting is opt-in, so most installs are not counted.
HOL Guard workspaces
<5
Workspaces that approved it or include it in an approved-plugin feed, as of today.

Reviews and similar plugins