Skip to content
Agentmart
Submit a tool

actual-setup

Set up Actual Computer (actual.inc) inference in Hermes.

Skill by Lexus2016

IndexedMIT★ 15
Write a review

Chalk Labs

Need help deploying actual-setup?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/lexus2016-actual-setup

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Set up Actual Computer (actual.inc) inference in Hermes.

Use cases: devops, ml

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/actual-setup

What's inside

Skill name
actual-setup
Description
Set up Actual Computer (actual.inc) inference in Hermes.
License
MIT
Instructions
136 lines in SKILL.md · view on GitHub

Before installing

  • Instructions call the network

Files (2)

  • SKILL.md
  • opencode.md · references/

SKILL.md (first lines)

# Actual Computer Setup Skill

Sets up [actual.inc](https://actual.inc) (Actual Computer) as a Hermes inference
provider. Actual turns the user's own hardware into a private inference cluster
and exposes an OpenAI-compatible API two ways: a hosted end-to-end-encrypted
relay at `https://api.actual.inc` (authenticated with an `ac_` key), and a local
on-device daemon at `http://127.0.0.1:8080` (no auth on loopback). This skill
does not install the Actual daemon for the user — device authorization requires
a human in a browser.

## When to Use

- User wants to add actual.inc as an inference provider (cloud relay or local).
- User has an `ac_` key and wants Hermes routed through their Actual cluster.
- User wants fully-local, on-device inference via the Actual daemon.
- Troubleshooting: Actual requests failing with cryptic 400s or empty streams.

## Prerequisites

- Hermes has **first-class `actual` provider support** (provider id `actual`,
  aliases `actual-computer`, `actualcomputer`, `aci`). Do NOT configure Actual
  as a `custom_providers` / `providers.actual.*` entry on current Hermes — the
  built-in provider owns the name and handles base-url normalization, the
  Responses transport, and local no-auth automatically.
- Relay mode: an Actual account and an `ac_` inference key from
  https://actual.inc/user/keys.
- Local mode: the user has installed the daemon
  (`curl -fsSL "https://actual.inc/install" | bash`) and completed device
  authorization by running `actual` once and opening the printed
  `https://actual.inc/device?code=...` URL in a browser. Relay that URL to the
  user and WAIT — never invent an email or authorize on their behalf. Codes
  expire in 5 minutes; re-run `actual` for a fresh one.

## How to Run

### Relay / API mode

1. Put the key in `.env` (secrets only — never config.yaml):
   append `ACTUAL_API_KEY=ac_...` to `~/.hermes/.env`.
2. Verify the key and discover models with `terminal`:
   ```bash
   curl -s https://api.actual.inc/v1/models -H "Authorization: Bearer $ACTUAL_API_KEY"
   ```
3. Select provider + model:
   ```bash
   hermes config set model.provider actual
   hermes config set model.default "MODEL_ID_FROM_DISCOVERY"
   ```
4. Verify end-to-end:
   ```bash
   hermes chat -Q -q "Reply with exactly: ACTUAL_OK" --provider actual -m MODEL_ID
   ```

### Local mode

1. Human has installed + authorized the daemon (see Prerequisites).
2. Download and load a model (scriptable once authorized):
   ```bash
   actual models search "qwen2.5 0.5b instruct gguf" --limit 8 --no-prompt
   # Downloads REQUIRE an explicit quantization (409 ambiguous_model_download otherwise):
   actual models download "Qwen/Qwen2.5-0.5B-Instruct-GGUF/Q4_K_M"
   actual models list        # note the INSTALLED name (differs from download id)
   actual models load "qwen2.5-0.5b-instruct-q4_k_m"   # load by installed name
   ```
3. Point Hermes at the daemon. `ACTUAL_BASE_URL` with a loopback host flips the
   built-in provider into local no-auth mode automatically — no key needed:
   append `ACTUAL_BASE_URL=http://127.0.0.1:8080` to `~/.hermes/.env`, then:
   ```bash
   hermes config set model.provider actual
   hermes config set model.default "INSTALLED_MODEL_NAME"
   ```
4. Verify (reduced toolset — see context-window pitfall below):
   ```bash
   hermes chat -Q -q "Reply with exactly: LOCAL_OK" --provider actual -m INSTALLED_NAME -t file,web
   ```

## Quick Reference

| Thing | Value |
|---|---|
| Hosted relay | `https://api.actual.inc/v1` (normalized from bare host automatically) |
| Local daemon | `http://127.0.0.1:8080/v1` (no auth on loopback) |
| Key env var | `ACTUAL_API_KEY` (`ac_...`) |
| Base URL env var | `ACTUAL_BASE_URL` (loopback host ⇒ local no-auth mode) |
| Provider id / aliases | `actual` / `actual-computer`, `actualcomputer`, `aci` |
| Transport | Responses API (`codex_responses`) — built-in, do not override |
| Cluster pinning | `X-Cluster-ID` header via `providers.actual.extra_headers` in config.yaml |
| Model size guide | 0.5B Q4_K_M ~470MB (toy), 7-8B Q4_K_M ~4.5GB (daily driver), 32B ~20GB |

## Pitfalls

1. **reasoning_effort trap (handled by Hermes since the first-class provider).**
   Actual's SGLang/vLLM backends accept only `none/low/medium/high/max`;
   `xhigh`/`ultra` used to fail with a cryptic
   `Expecting value: line 1 column 1 (char 0)` (a wrapped HTTP 400). The
   built-in provider clamps `xhigh→high` and `ultra→max` on the wire. If a
   request still 400s this way on an old Hermes, set a per-model cap:
   `agent.reasoning_overrides.<model>: high` in config.yaml.
2. **Context-window overflow on small local models.** Hermes' default toolset
   is ~26k tokens of schemas plus a ~9k-token system prompt. A model loaded
   with a 32k context overflows before the first turn, and llama.cpp-family
   servers emit a bare `data: [DONE]` — Hermes reports
   `Provider returned an empty stream with no finish_reason`. This is NOT an
   SSE bug. Fixes: restrict tools (`-t file,web`), load the model with a
   larger `n_ctx`, or pick a >=64k-context model for the full toolset.
   Upstream tracking: #51448 (do not file new issues; add evidence there).
   Related but distinct: #65631 (HTTP-200 SSE carrying a 400), #56516
   (reasoning-only streams).
3. **Download ids vs installed names.** `actual models download` takes
   `repo/QUANT` and 409s without an explicit quantization;
   `actual models load` takes the INSTALLED name from `actual models list`.
4. **Reasoning models returning empty content.** GLM/Qwen reasoning variants
   emit thinking in a separate `reasoning` field and can burn a small
   `max_tokens` entirely on reasoning. Give generous max_tokens before
   assuming failure.
5. **Do not create a custom provider named `actual`.** Older setup guides
   (pre first-class support) wrote `providers.actual.*` config blocks. On
   current Hermes the built-in provider wins the name; stale custom blocks
   are ignored or conflict. Remove them and use the env vars + model.provider

From Lexus2016/hermes-agent-evolution, MIT.

More from Lexus2016/hermes-agent-evolution

Signals

Stars
15
Forks
4
Open issues
0
Last commit (this folder)
Aug 14, 2026 (2 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from Lexus2016

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get actual-setup running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying actual-setup?

CallGet help
Cite this page

actual-setup skill. Agent Mart. https://agentmart.dev/skills/lexus2016-actual-setup (last updated 2026-10-24)