hausfold

@type: Organization

description: hausfold makes Mac software: one layer that rebuilds the whole machine, and the small native tools that live inside it.

@type: ContactPoint

contactType: customer support


@type: FAQPage

Is hausfold's software free?

@type: Question

@type: Answer

text: Yes. Everything hausfold publishes is free and open source: no account, no subscription, nothing to buy.

What is haus?

text: haus is a macOS layer. You describe the Mac you want in one plain text file, and one command makes the Mac match it. Every rebuild is reversible.

How do I install it?

text: curl -fsSL https://hausfold.co/hacker.sh | bash installs the hacker desktop. Replace hacker with everyday or minimal, or use haus.sh to be asked.

Can an AI agent set it up?

text: Yes. The docs exist as plain text (llms.txt and a markdown twin of every page), and haus ships agent skills that carry a rebuild from prompt to rollback.


hausfold

@type: WebPage


developers · hausfold

description: The public machine-facing surface of hausfold.co: installers, release metadata, docs search, an MCP endpoint for coding agents. No keys, no accounts.


about · hausfold

description: One person, a few small programs, no company to upsell you: what hausfold makes and how the house is run.


contact · hausfold

description: Where bugs, questions and ideas go: one email address and one GitHub org, both read by a person.


privacy · hausfold

description: This site collects nothing: static pages, no cookies, no analytics, no accounts.


perch · privacy

description: Perch's privacy policy: no account, no analytics, no data collected. Nothing leaves your Mac except to a device you paired yourself.


What haus is

description: One file describes your Mac. One command makes the Mac match it. Everything else here is detail.


Changing your Mac with an agent

description: Your machine is text and every rebuild is reversible, so an AI agent can reconfigure it safely: the skills haus ships, the loop they follow, and the one rebuild they refuse.


Start blank

description: The from-scratch desktop: no optional rooms, no claimed hotkeys, nothing that changes how the Mac behaves. Then add rooms one at a time.


Choose a desktop

description: haus supplies rooms; a desktop curates them; your host file makes one yours. Exactly one desktop per Mac. Here are the four that ship, and how to switch.


Create a desktop

description: A desktop is one file whose only top-level key is haus. The closed format, what it may and may not set, and how to prove it before anyone else runs it.


Customize a desktop

description: One file holds every choice you make: the dials worth knowing, the rooms you can switch off, and how to beat anything your desktop set.


everyday

description: A Mac for someone who doesn't write code: a better menu bar, a search box that opens anything, and none of the developer tooling.


hacker

description: An opinionated macOS, raised in the fog: tiling windows, a bar, a themed terminal. The desktop most people install haus by installing.


minimal

description: Just the themed shell: the prompt, the toolbelt and the colours, on an otherwise stock macOS. Few rooms, not few tools.


Share a desktop

description: Publishing a desktop someone can read before they run it: what the repository holds, what the README owes them, and the checklist before you hand it out.


Install

description: One line scaffolds your config. A second command activates it. Nothing is activated without your say-so.


Contributing

description: The workshop checkout, the bench CLI, and the loop that takes a change from an edit to a release. Try it without pushing, feel the whole PR queue at once, then ripple it down the chain.


How the flakes fit together

description: Nothing on your Mac changes until you say so. This is the machinery behind that, from the config the installer scaffolds to the exact commit every input is pinned at.


Keeping it current

description: The everyday loop (edit, rebuild, update, roll back) and the payoff it buys, a new Mac that becomes the old one in two commands.


Leaving

description: Switch off one room, roll back a generation, or take the whole house down. Each exit in turn, smallest first.


Merging pull requests overnight

description: A haus machine can keep merging while nobody is watching. What a shift asks of the Mac underneath it: the lid lever that survives a closed laptop, the command that hands a red branch to an agent, and the feed it meters against.


The haus CLI

description: Every haus command. Apply, update, undo, and the read-only ones that show you a change before you make it.


haus.* options

description: Every option you can set in your host file — types, defaults, and what each one changes.


Troubleshooting

description: The handful of things that go sideways on macOS (a wedged agent, a missing grant, a stubborn cask), and the exact command that unsticks each one.


AI

description: Coding agents as a room: the clients this machine installs, scruff giving each agent its own checkout, and the lifecycle around them. Any git repo, any client.


Appearance

description: One silver-mist palette across every tool: the accent, the contrast, light mode, the generated wallpaper, and one line each for bigger type and less motion.


Apps

description: Every app, font and CLI tool on the machine in one list: where each one installs from, what key launches it, and the packs that bring a whole set at once.


Bar

description: Workspace pills, weather, media and a status light. What the bar carries, what each pill does, and how to turn any of it off.


Writing a bar widget

description: The framework haus's own pills are written in — one self-describing file, a fetch/render split, tones instead of hexes, and a dropdown you don't have to lay out. The whole contract for a pill of your own.


Create a room

description: A room is two files and three lines of registry. What one owes the layer, how rooms talk without reaching into each other, and when a plain module in your host is the better answer.


Development

description: The terminal, the shell, session persistence and the editor, plus Git tooling, the CLI toolbelt, language runtimes and the GitHub webhook bridge. The command line haus sets up, and the keys that drive it.


Displays

description: Per-screen scaling, said as an intent rather than a pixel count, and addressed by which screen you mean, never by a serial number you'd have to look up twice.


Focus

description: One quiet switch (bar pill, palette command and CLI) for macOS Do Not Disturb, your Slack status, and your own hooks on both edges, plus the named states around it, which your Mac can enter on its own.


Launcher

description: The ⌘Space command palette. The room that installs it, hands it the key Spotlight was holding, and keeps its Accessibility grant alive across rebuilds.


Notifications

description: Where this desktop's banners come from. haus draws through trill wherever trill answers; this room is the switch that makes haus own the bundle, at a fixed path a Full Disk Access grant can survive, plus the one source haus feeds it from: new mail.


Security

description: Touch ID for sudo, even inside a multiplexer, plus lock behaviour, the firewall, and where this machine gets its secrets.


Shelf

description: A shelf that drops out of the notch mid-drag to catch files, so you never have to dig the destination window out first.


Text expansion

description: Type a short trigger, get the long thing, in any app, terminals and Electron included, from a table you keep in your host file.


Windows

description: Tiling, named workspaces and window navigation from the keyboard. How windows arranges the Mac, and how to keep the arranging without the key claims.


What perch is

description: A shelf that drops out of the notch mid-drag to catch whatever you're carrying. Native, quiet, and it never touches your originals.


Install

description: Putting perch on your Mac, in order. The one macOS setting to turn off first, a signed download or one brew command, and pairing the free iPhone app. Ten minutes, no terminal needed.


Using the shelf

description: Catching a drag, the other ways onto the shelf, carrying the stack out, and what stays there when you walk away.


What pounce is

description: A native, keyboard-first command palette for macOS where every command is a file. Free, MIT, no account. Summon, aim, pounce.


Beyond launching

description: Two opt-in behaviours that aren't a palette: an MRU window switcher, and asking an app to quit when its last window closes.


CLI reference

description: Every pounce flag and subcommand: the palette, the built-in windows, pickers, drafts, transforms and housekeeping.


Commands

description: What ships in the palette out of the box, the plugin shelf that's off by default, and how a command in your own folder shadows one of ours.


Config reference

description: Every key in ~/.config/pounce/config.json, what it defaults to, the blocks that need a restart, and where every file lives.


Install

description: Homebrew or a DMG, the one macOS permission pounce asks for, and how to free ⌘Space from Spotlight.


Using the palette

description: Summoning it, what an empty palette shows before you type, the keys that move you around, how ranking picks the first row, and the questions it answers inline.


Writing your own command

description: One shell script with an optional comment header. No SDK, no manifest, no build step. Plus submenus, chaining, and pounce as a generic picker.


What scruff is

description: Give every coding agent its own branch, its own checkout and its own pane. scruff owns the whole life of that lane, from created to swept, and is built to never lose your work.


For coding agents

description: Two skills ship in the repo, so a session that has never seen scruff drives it correctly the first time. What is in them, what they refuse to do, and how to install them.


Commands

description: Every verb, the flags that matter, and what each of the six exit codes means for what you do next.


Config

description: One optional TOML file, five environment variables, and two kinds of adapter. Everything here has a working default, so an install with no config at all is the normal case.


Install

description: One binary, no runtime, no account. Nix or Go, the two optional tools that make it sharper, and the one line that proves it took.


The JSON API

description: One envelope for the snapshot, one NDJSON stream for the changes, and the six traps that have caught every consumer so far.


Landing and cleanup

description: How scruff proves a branch's work reached the default branch across every merge shape, the sweep that only ever takes finished work, and the ledger that makes every deletion reversible.


Working in lanes

description: Open a lane on this repo or another one, hand it to an agent on a first-turn task, list what you have going, and pick any of it back up later.


Parking work

description: Set a dirty tree aside as one wip commit on the branch only this pane has checked out. The reason git stash is the wrong tool the moment you have two agents.


Runtimes

description: Hand one lane to a VM or a container and take it back again. Includes tart, a headless macOS per lane, so an agent can see a desktop change work without taking the screen you are sitting at.


SDKs

description: Five thin clients over one binary, in TypeScript, Python, Rust, Go and Swift. They share a wire format and a version number, on purpose.


Hooks and seams

description: scruff ships its answers as defaults rather than as the mechanism. Six decisions are programs you can replace, and a broken one costs you the override, never the operation.


What trill is

description: A notification compositor for macOS: one place for what interrupts you, and a filter in front of it. In the incubator: there are releases, there is no install command.