agent-skillsCAUTION
LakehouseBox for agents: the MCP connector and Agent Skills for Claude, Cowork, Codex, ChatGPT, Gemini CLI and any agent that reads skills
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
The LakehouseBox MCP connector and Agent Skills in one plugin. LakehouseBox keeps analytical data as Apache Iceberg tables, operated in Germany; the agent brings the compute.
- The connector (
https://mcp.lakehousebox.com/mcp, read-only): find the tables you can read and how fresh they
are, run read-only SQL on LakehouseBox's side, read files such as photos. It needs a LakehouseBox account (free); you approve it once in the browser.
- The skills teach the agent the service. A skill is a folder with a
SKILL.mdthe agent loads when the task
matches, plus references it opens only when needed.
Layers. The base skill is what every LakehouseBox task needs. Workflow skills cover one capability of the service; use-case skills cover an end-to-end job and build on the layers below. catalog.json has the graph.
Reading a public catalog needs neither an account nor the connector: the skills show the agent how to read it with DuckDB. Everything else needs a LakehouseBox account, which an agent with a shell
f0a27b606cd1OBSERVED · 2026-10-13Install
Commands as the repository documents them. They are shown, not run.
pip install 'duckdb>=1.5.6'
pip install 'duckdb>=1.5.5' # writes need 1.5.5 or newer; doctor names which interpreter to upgrade
claude mcp add --transport http lakehousebox https://mcp.lakehousebox.com/mcp \
Host compatibility
What the documentation claims. We have not run a compatibility test.
| Host | Status | Notes |
|---|---|---|
| claude-code | mentioned | |
| claude-desktop | mentioned | |
| codex | mentioned | |
| cursor | mentioned | |
| gemini-cli | mentioned |
What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
---
name: lakehousebox-home-assistant
description: Move a Home Assistant's history into LakehouseBox and keep it flowing in - the recorder's last 10 days of states and its hourly long-term statistics into Iceberg tables (no account needed to start, lhbox new), then the person claims the catalog and every state change is posted once a minute by rest_command and one automation. Use when someone wants to keep, move, back up or query Home Assistant history, energy or sensor data for longer than the recorder keeps it. Builds on the lakehousebox and lakehousebox-keep-fresh skills.
---
# Home Assistant history on LakehouseBox
The person wants their Home Assistant history kept for years and answers about it. The whole recipe, every command
and its recorded output, is in [the instructions](references/instructions.md); this page is the order and the
decisions.
## Before you start
- **Find Home Assistant.** You need its configuration folder (`configuration.yaml`, `home-assistant_v2.db`) and a way
to restart it: a container (`docker restart homeassistant`), a Core install's service, or on Home Assistant OS the
Terminal & SSH add-on (`ha core restart`, the folder is `/config`). If the person told you where, use that. If you
cannot reach it, say so and do what you can from a copy of the database file.
- **Check the recorder.** `recorder: db_url:` pointing at MariaDB or PostgreSQL means the history move (step 2) is not
covered; skip to the live feed after the claim.
## The order
1. **Access** (instructions §1). A saved key (`lhbox whoami`) or a person at the keyboard (`lhbox login`): use that.
Otherwise `lhbox new`, no account: a catalog named `lakehouse` you can write now. Tell the person it accepted the
Terms for them, and that it is deleted after 72 hours unless they keep it.
2. **Move the history** (§2): snapshot the database with SQLite's backup (never the live file), run the SQL, import
`ha.states` and `ha.statistics`. Leave out `device_tracker` (locations) unless the person said yes. Answer one
real question from the data before anything else: that is what the person came for.
3. **The claim** (§3) is the one thing only the person can do: `lhbox claim`, give them the link and the code and
tell them to pick **read and write** (the page offers read first), then `lhbox claim --resume --wait`. If it comes
back `downgraded`, ask again with `lhbox login --new --level write --catalog lakehouse:write --no-wait`. If they
are not around, stop here and tell them exactly that, with the deadline.
4. **The live feed** (§4–§6), after the claim: the sink, the secret, the `rest_command` and automation **exactly as
written** (the payload survives integrations whose attributes are not JSON), the "uploads stalled" sensor, one
restart, rows arriving, then fill the gap between the snapshot and the restart.
## Rules that save a retry
- Back up `configuration.yaml`, `secrets.yaml` and `automations.yaml` before you edit them, and check the YAML with
Home Assistant's own check before the restart when you can (`ha core check`, or
`hass --script check_config -c <folder>`).
- The sink's address is a password: it goes in `secrets.yaml`, never in the conversation or `configuration.yaml`.
- One restart, after all the YAML is in place: a new `rest_command` needs it, and it is the minute that posts
every entity at once.
- Name the catalog from `lhbox catalog list` after the claim: a claim can rename it (`lakehouse_2`).
- The first question: `lhbox query "<sql>"` (runs on LakehouseBox's side, nothing saved on disk). A DuckDB secret saved
with `lhbox duckdb --persist` before the claim holds the old key.
- Queries, energy per day and what each domain holds: instructions §7 and "Energy". A live dashboard: the person
connects LakehouseBox in Claude and ticks the catalog ("See it on a dashboard"). Daily summaries on a schedule or a
morning email: the `lakehousebox-hosted-agents` skill.Trust audit
CAUTIONgrade B · trust 89/100 Install with care. The audit found things worth knowing before you trust its output.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | WARN |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (10)
curl -fsSL https://lakehousebox.com/install.sh | sh # one Python 3 file, no dependencies
**`weather.sql`** must be one DuckDB SELECT over an http(s) source. This example uses Open-Meteo, which needs no API key:
Answer a first question to show the person their history is there. lhbox query runs it on LakehouseBox's side, read-only, with nothing to install and no credential written to disk (an unclaimed catalo
- A public folder is world-readable. When the catalog is public and its admin published a folder of this bucket (lhbox catalog publish <name> --confirm --files public/, docs/public-warehouses.md, "Pub
Read lets you list and query tables, get the catalog's read-only connection recipe, browse and preview the catalog's files, and list its uploaders and sinks. Write adds creating, changing and dropping
The key is never shown. Do not ask for it, do not look for it, do not cat the credentials file. Every lhbox command and the connection recipe below read it themselves. If the person wants to see or re
- The lhbox command line: curl -fsSL https://lakehousebox.com/install.sh | sh.
curl -fsSL https://lakehousebox.com/install.sh | sh # one Python 3 file, no dependencies
curl -fsSL https://lakehousebox.com/install.sh | sh # a single Python 3 file, no dependencies
2026-10-04 09:21:00.249 DEBUG (MainThread) [homeassistant.components.rest_command] Calling post https://in.lakehousebox.com/d/<token> with headers: {'Content-Type': 'application/json'} and payload: b'Gates applied: no_behavioural_pass.
f0a27b606cd1full audit observations/trust-audit/skill/lakehousebox__agent-skills.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-13 | f0a27b606cd1 | CAUTION | B | 89 | first audit |
Questions
What does the agent-skills skill do?
LakehouseBox for agents: the MCP connector and Agent Skills for Claude, Cowork, Codex, ChatGPT, Gemini CLI and any agent that reads skills
Is agent-skills safe to install?
With care. The audit graded it B (89/100) and found 10 things worth knowing before you trust this skill, listed below with the exact line each was found on.
What can agent-skills access on my machine?
The audit observed no filesystem, network or shell use at all in its source.
Which assistants does agent-skills work with?
Its documentation mentions claude-code, claude-desktop, codex, cursor and gemini-cli. That is what the text claims, not a compatibility test we ran.
How current is this page?
The grade is for one exact copy of the source (f0a27b606cd1), read on 2026-10-13. The repository is watched, and a new audit runs when it changes — this is the first audit.