Skip to content

Releases: Avick3110/houseCARL

houseCARL 1.2.3

11 Jun 17:27

Choose a tag to compare

Opens the script-property write surface, adds a write-and-verify loop, and hardens tool-argument handling and setup — carrying houseCARL's first outside code contributions (thanks, WraithFallen). No change to the tool set (16 tools).

  • Script-property (VMAD) writes work: paths and composes through a polymorphic field's arms now validate and write end-to-end (thanks WraithFallen — #35)
  • Malformed tool arguments now coerce or fail by name — including Claude Code's array-as-string and JSON-array-in-a-string shapes (thanks WraithFallen — #36)
  • Write tools gain opt-in full_readback= — every touched record returned in full off the written file, so a patch can be verified before it's enabled in MO2
  • A plugin= read naming a plugin that isn't in the load order now says exactly that, never the false "does not define this record"
  • Every operation answers from one captured index snapshot — an MO2 change mid-query can no longer tear results
  • houseCARL-Setup.exe is now self-contained and pre-flights both required .NET runtimes with a specific fix message
  • The SkyPatcher/SPID/KID authoring skills now also load for interpreting or auditing existing INIs, not just writing them

Full details in CHANGELOG.md.

houseCARL v1.2.2 — four bug fixes from the Requiem-audit wave

10 Jun 01:41

Choose a tag to compare

Fixes four issues surfaced auditing a Requiem load order — all in reads and writes, no change to the tool set.

  • New records get valid FormIDs: creating a record in a patch that was first written by a bulk apply could allocate FormIDs starting at 000000 — the null range the game and other tools reject. houseCARL now floors every new-record allocation at 0x800 (the user range Bethesda reserves) from every write path, and persists a floored high-water mark into the patch so later edits and removals never regress it. Patches that already carry a 000000 record stay readable and editable — nothing is auto-renumbered, which would break references.
  • Conflict diffs compare real content: the conflict tree's "what differs between these overrides" comparison looked only at top-level field counts, so two overrides that changed the contents of a list or struct without changing its length could be reported as identical. The diff now walks the record's full depth — list elements compared order-insensitively, sub-structs and nested values compared by value — so a genuine deep difference is no longer missed, and the output stays honest when a record is too large to fully expand.
  • One unreadable record no longer breaks a whole query: a single record Mutagen can't parse — for example a malformed perk an upstream ESP ships — used to abort an entire housecarl_cross_plugin_query that scans references, returning nothing. houseCARL now isolates the offending record, scans past it, and reports how many records were skipped and why, so the rest of the results come through.
  • Form-targeted conditions read correctly: a condition that points at a form — HasPerk, HasMagicEffect, GetInFaction, and the like — used to render a placeholder instead of the form's FormID when read. houseCARL now resolves the target through its link, so those condition payloads show their real FormID.

Install: download houseCARL-1.2.2.zip below, unzip, and run houseCARL-Setup.exe. Existing users: re-run the setup utility (or your mod manager's update) to pick up 1.2.2.

houseCARL 1.2.1 - field-value query, Nexus descriptions, read/write fixes

08 Jun 18:36

Choose a tag to compare

  • New: cross_plugin_query can now filter records by a field's VALUE, not just by type or plugin — e.g. where="MagicSkill = Destruction" or where="BasicStats.Damage >= 50" (operators: = != > >= < <= contains; multiple where= are ANDed). Works on any field you can read.
  • New: housecarl_nexus_mod takes an opt-in description=true that returns a mod's full Nexus page write-up as plain text, not just the short catalogue summary.
  • Fix: writing into a patch that's already active in your load order no longer fails with a file-lock error.
  • Fix: deep reads (depth 5+) of records with conditions (perks, spells, magic effects) no longer flood the output with .NET internals — the actual values are visible again.
  • Fix: under a plugins= scope, cross_plugin_query now shows each match from that plugin's own record, not the global load-order winner.

houseCARL 1.2.0 - Nexus read tools + papyrus-optimization

07 Jun 15:37

Choose a tag to compare

What's new in 1.2.0

Nexus Mods lookups (two keyless, read-only tools)

  • housecarl_nexus_search — search the Skyrim SE catalogue.
  • housecarl_nexus_mod — one mod's version, requirements, and true latest release (the newest MAIN file, since a mod's version header can lag).

No browser, no account, no API key. Read-only: houseCARL finds and informs; downloading stays your mod manager's "Mod Manager Download" handoff. Offline-tolerant — if there's no connection it says so plainly and every local capability keeps working.

papyrus-optimization skill

A bundled Papyrus performance reviewer: classify each part of a .psc as broken / suboptimal / clean, explain what makes it heavy, and give the fix (event-driven, caching, states, native offload). houseCARL's first community-contributed skill, by DrHeisen.


Install: download houseCARL-1.2.0.zip below, unzip, and run houseCARL-Setup.exe. Requires the ASP.NET Core Runtime 9.0 and Mod Organizer 2 — see the README.

houseCARL 1.1.3 - load-order index-build resilience

07 Jun 11:43

Choose a tag to compare

load-order index-build resilience

Hardens houseCARL against a malformed plugin that could otherwise make every command fail.

  • Resilient load-order indexing: a single record Mutagen can't parse — for example a malformed package
    data-input count that an upstream ESP ships and the game engine ignores — used to make every houseCARL
    command fail with a Mutagen error, because the whole-load-order index is built up front and one bad record
    threw the entire build. houseCARL now isolates the offending plugin: it is excluded from the session and
    reported in housecarl_load_order_status (with the reason why), while every other plugin stays fully
    readable. Fix or remove the upstream plugin to restore access to it.

Install: download houseCARL-1.1.3.zip below, unzip, and run houseCARL-Setup.exe. See the README for hosts (Claude Code / Codex / both) and first-run setup.

Full changelog: plugin/CHANGELOG.md

houseCARL 1.1.2

06 Jun 14:08

Choose a tag to compare

Patch release.

Papyrus reference lookup fix. The papyrus-reference skill documented its function-index grep with a format that no longer matched the shipped index — a lookup written from the docs matched zero lines even for functions that are present, silently reporting a real function as "not in the corpus" (the exact failure the skill exists to prevent). The doc now matches the compact index, uses a full-quoted-token match, and adds a self-check that validates the search against a known-present token before trusting an empty result.

Corrected attribution. The bundled third-party notices now credit the distributor-grammar authors by name — Zzyxzz (SkyPatcher) and powerofthree (SPID + KID) — and list the kid-authoring skill.

Install

Download houseCARL-1.1.2.zip below, unzip, and run houseCARL-Setup.exe — pick Claude Code, Codex, or both. Existing users: re-run the setup utility to update in place.

Built with scripts/build-plugin.ps1; claude plugin validate ./dist/housecarl --strict passed; leak-check clean.

houseCARL 1.1.1

06 Jun 02:42

Choose a tag to compare

houseCARL 1.1.1 — the logs rider. This completes the external-tool bridge: houseCARL now points you at your logs.

What's new

  • Log folders in status: housecarl_load_order_status now surfaces the resolved Papyrus script-log and SKSE crash-log folders, so houseCARL knows where to read them when you ask about a Papyrus error or a crash. Set a folder explicitly with housecarl_set_tool_path (papyrus_logs / crash_logs); when one is unset, houseCARL auto-detects the default location and tells you exactly how to point it at yours. Logs are the one bridge dependency with no wrapping tool — you Read the .log files directly.

Install (modders): download houseCARL-1.1.1.zip below, unzip, and run houseCARL-Setup.exe, then pick [1] Claude / [2] Codex / [3] Both. Requires Windows, the .NET 9 ASP.NET Core Runtime, and Mod Organizer 2. See the README for build-from-source and full details.

Upgrading from 1.1.0: re-run houseCARL-Setup.exe from the new zip — your saved MO2 instance and tool paths persist (they live in the writable data dir, untouched by the update).

Licensed GPL-3.0-only (see LICENSE and THIRD-PARTY-NOTICES.txt).

houseCARL 1.1.0

06 Jun 01:19

Choose a tag to compare

houseCARL 1.1.0 — the tool bridge. houseCARL now drives the external modding toolchain, not just the data layer.

What's new

  • Tool bridge: housecarl_set_tool_path registers — and auto-detects — the external tools houseCARL wraps. When a command needs a tool that isn't set, houseCARL fails loud with the exact path it needs instead of silently doing nothing.
  • Papyrus compile: housecarl_compile_script compiles a .psc through the Creation Kit's PapyrusCompiler.exe. Warnings are non-fatal; the recompile is non-destructive (the existing .pex is overwritten only on success).
  • BSA archives: housecarl_bsa_list / housecarl_bsa_extract / housecarl_bsa_repack wrap BSArch to inspect, extract from, and repack .bsa archives. Repack is non-destructive (the target is replaced only when the pack succeeds).

Install (modders): download houseCARL-1.1.0.zip below, unzip, and run houseCARL-Setup.exe, then pick [1] Claude / [2] Codex / [3] Both. Requires Windows, the .NET 9 ASP.NET Core Runtime, and Mod Organizer 2. See the README for build-from-source and full details.

Licensed GPL-3.0-only (see LICENSE and THIRD-PARTY-NOTICES.txt).

houseCARL 1.0.1

05 Jun 01:36

Choose a tag to compare

houseCARL 1.0.1 - descendable reads + bracket-grammar discoverability.

What's new

  • Descendable reads: housecarl_read_record and housecarl_batch_record_detail gain a depth parameter. depth=1 (default) is unchanged; depth>=2 enumerates the contents of lists, dictionaries, and sub-structs - each element shown with its index and an identity (e.g. VirtualMachineAdapter.Scripts[0].Properties[5] = [ScriptObjectProperty] Name=...) - so nested elements and their indices are visible in one call instead of probing each index by hand.
  • Bracket-grammar discoverability: reading a collection with a dot-index (e.g. Aliases.0) now returns an actionable hint to use brackets (Aliases[0]); bracket indexing is documented in the read and write tool descriptions.

Install (modders): download houseCARL-1.0.1.zip below, unzip, and run houseCARL-Setup.exe, then pick [1] Claude / [2] Codex / [3] Both. Requires Windows, the .NET 9 ASP.NET Core Runtime, and Mod Organizer 2. See the README for build-from-source and full details.

Licensed GPL-3.0-only (see LICENSE and THIRD-PARTY-NOTICES.txt).

houseCARL 1.0.0

04 Jun 20:14

Choose a tag to compare

houseCARL 1.0.0 - initial public release.

Comprehensive, data-layer access to your Skyrim Special Edition load order, in plain English, through Claude or Codex. Reflection-driven over Mutagen: every record type Mutagen models is readable and writable by construction - not a hand-maintained subset.

What it does: read any record at the true load-order winner (with the full conflict tree); author patches into a NEW plugin (set/add/remove fields, leveled lists, containers, condition re-targeting); create and remove records; and look up record schemas, Papyrus/SKSE signatures, and SkyPatcher/SPID/KID distributor grammars.

Install (modders): download houseCARL-1.0.0.zip below, unzip, and run houseCARL-Setup.exe, then pick [1] Claude / [2] Codex / [3] Both. Requires Windows, the .NET 9 ASP.NET Core Runtime, and Mod Organizer 2. See the README for build-from-source and full details.

Bundled skills: mutagen-reference, papyrus-reference, skypatcher-authoring, spid-authoring, kid-authoring.

Licensed GPL-3.0-only (see LICENSE and THIRD-PARTY-NOTICES.txt).