# Build with an AI agent (https://docs.hub.ki/custom-apps/agent-skill)



If you work with a coding agent such as [Claude Code](https://claude.com/claude-code),
you can give it a **skill** for HUB.KI custom apps. A skill is a short instruction
file the agent loads when a task matches it. This one tells the agent how to
approach a custom app and where to look things up — it contains no API details of
its own. The agent reads the pages of this documentation live, so it follows the
current SDK, manifest rules and sandbox policy rather than whatever it remembers.

## Install
The skill is a single file:
[`docs.hub.ki/skills/hub-custom-apps/SKILL.md`](https://docs.hub.ki/skills/hub-custom-apps/SKILL.md).

For one project, from the project root:

```sh
mkdir -p .claude/skills/hub-custom-apps
curl -fsSL https://docs.hub.ki/skills/hub-custom-apps/SKILL.md \
  -o .claude/skills/hub-custom-apps/SKILL.md
```

For every project on your machine, install it into `~/.claude/skills/` instead:

```sh
mkdir -p ~/.claude/skills/hub-custom-apps
curl -fsSL https://docs.hub.ki/skills/hub-custom-apps/SKILL.md \
  -o ~/.claude/skills/hub-custom-apps/SKILL.md
```

Commit the project copy if your team should share it. Other agents that support
the Agent Skills format load the same file from their own skills folder.

Because the skill only points at the documentation, it rarely changes. Run the
same command again to update it.

## Use it
Describe the app you want; the agent picks the skill up on its own. For example:

> Build a HUB.KI custom app that keeps a per-user reading list: title, link, and a
> done checkbox. It should follow the host theme and run locally while I develop.

> Here is my custom app. Check the manifest against the validation rules and tell
> me why the sync skips it.

> I need this app to call our own API at `https://api.example.com`. What do I have
> to change, and what does our admin have to approve?

The agent will:

1. read [`llms.txt`](https://docs.hub.ki/llms.txt) and the pages it needs,
2. ask you for anything only you can decide — above all your **`appId` namespace**
   and **where data should live**, since the [key/value store](https://docs.hub.ki/custom-apps/sdk#store)
   starts empty on every new app version,
3. scaffold, develop against the SDK's
   [mock host](https://docs.hub.ki/custom-apps/sdk#developing-without-hubki), build a single HTML file, and
   check the manifest against every [validation rule](https://docs.hub.ki/custom-apps/manifest#validation),
4. tell you exactly what to [upload](https://docs.hub.ki/custom-apps/publishing) and what to ask your
   [administrator](https://docs.hub.ki/custom-apps/administration) for.

## What to expect
* **It needs a GitHub token to install the SDK**, exactly as in the
  [Quick start](https://docs.hub.ki/custom-apps/quick-start). Export `GITHUB_TOKEN` in the shell the agent
  uses; the skill tells it never to write the token to a file or print it.
* **It does not publish.** Uploading to a source is yours to do, and registering,
  syncing and making the app available are an administrator's.
* **It cannot run the production build inside HUB.KI.** The mock host covers
  development. The agent will say what it could not test and list what to check
  after the first sync.

## Without skills
Any assistant can use the same material. Point it at
[`llms.txt`](https://docs.hub.ki/llms.txt), an index of every page as Markdown, or
paste [`llms-full.txt`](https://docs.hub.ki/llms-full.txt), the whole documentation
in one file. **Copy Markdown** at the top of each page gives you a single page.
