# filedom > A React renderer for the macOS desktop. Components render as real Finder icons. ## Docs - [FileDOM](https://filedom.method.actor/docs): Render React components as real Finder icons. ## Learn - [Getting Started](https://filedom.method.actor/docs/learn/getting-started): Install FileDOM and run your first game. - [Choose an API](https://filedom.method.actor/docs/learn/choosing-an-api): Pick the smallest abstraction that fits what you want to put on the desktop. - [The Rendering Model](https://filedom.method.actor/docs/learn/rendering-model): Why filedom never changes an icon in place: Finder's blanking behavior, the move-only law, and the park + cover protocol. ## Guides - [Build a text surface](https://filedom.method.actor/docs/guides/text-surfaces): Turn editor or chat state into a bounded viewport of reusable glyph files. - [Troubleshooting](https://filedom.method.actor/docs/guides/troubleshooting): Fix permissions, missing icons, and input problems. - [Status](https://filedom.method.actor/docs/guides/status): Releases and current limits. ## Reference - [filedom](https://filedom.method.actor/docs/reference/react-api): The main entry point: roots, the startSession lifecycle, the asset-authoring toolkit, and shared types. - [filedom/system](https://filedom.method.actor/docs/reference/system): The native macOS host bridge plus filesystem operations behind the React layer. - [filedom/sound](https://filedom.method.actor/docs/reference/sound): Sound effects and playback backends. - [Architecture](https://filedom.method.actor/docs/reference/architecture): How the published package, the internal @filedom/* packages, the reconciler, and the native runtime fit together. - [Host Runtime](https://filedom.method.actor/docs/reference/host-runtime): The TypeScript bridge that orchestrates processes and talks to the macOS-native Swift binaries. - [Swift Runtime](https://filedom.method.actor/docs/reference/swift-runtime): The native controllers that move icons, capture input, and play audio on macOS. ### Components - [Components](https://filedom.method.actor/docs/reference/components): React components for desktop rendering. - [StageProvider](https://filedom.method.actor/docs/reference/components/stage-provider): Provides the park position, background, and icon size for stages. - [Stage](https://filedom.method.actor/docs/reference/components/stage): Owns a pool of reusable desktop icons. - [Sprite](https://filedom.method.actor/docs/reference/components/sprite): Displays one pooled icon at a position. - [Wallpaper](https://filedom.method.actor/docs/reference/components/wallpaper): Sets the desktop wallpaper. - [VirtualTreeProvider](https://filedom.method.actor/docs/reference/components/virtual-tree-provider): Provides a filesystem tree and desktop display settings. - [Score](https://filedom.method.actor/docs/reference/components/score): Displays a changing number using pooled digit icons. - [Text](https://filedom.method.actor/docs/reference/components/text): Shows or hides a block of laid-out text tiles. - [GameOverlay](https://filedom.method.actor/docs/reference/components/game-overlay): Renders help and game results from an overlay controller. - [Layout](https://filedom.method.actor/docs/reference/components/layout): fitIconSize, centerBoard, createGrid, distribute: sizing and point math for boards made of icons. ### Hooks - [Hooks](https://filedom.method.actor/docs/reference/hooks): React hooks for desktop games. - [useDesktopGameShell](https://filedom.method.actor/docs/reference/hooks/use-desktop-game-shell): Configures the desktop and derives game geometry. - [useDesktopMetrics](https://filedom.method.actor/docs/reference/hooks/use-desktop-metrics): Subscribes to desktop metrics in state and a ref. - [useBounds](https://filedom.method.actor/docs/reference/hooks/use-bounds): Reads current desktop metrics. - [useViewOptions](https://filedom.method.actor/docs/reference/hooks/use-view-options): Reads and updates desktop view settings. - [useInitialSetup](https://filedom.method.actor/docs/reference/hooks/use-initial-setup): Keeps startup loading active while game assets are prepared. - [useGameControls](https://filedom.method.actor/docs/reference/hooks/use-game-controls): Binds keyboard controls and generates matching help text. - [useGameOverlay](https://filedom.method.actor/docs/reference/hooks/use-game-overlay): Manages help visibility and result configuration. - [useKeypress](https://filedom.method.actor/docs/reference/hooks/use-keypress): Subscribes to normalized global keydown events. - [useDesktopPointInput](https://filedom.method.actor/docs/reference/hooks/use-desktop-point-input): Routes desktop pointer events by coordinates. - [useDesktopClick](https://filedom.method.actor/docs/reference/hooks/use-desktop-click): Calls a handler when a file is clicked. - [useDesktopRightClick](https://filedom.method.actor/docs/reference/hooks/use-desktop-right-click): Calls a handler when a file is right-clicked. - [useDesktopDrag](https://filedom.method.actor/docs/reference/hooks/use-desktop-drag): Reports a file position after dragging. - [useDesktopSelection](https://filedom.method.actor/docs/reference/hooks/use-desktop-selection): Tracks selected Finder paths. - [useFixedTick](https://filedom.method.actor/docs/reference/hooks/use-fixed-tick): Runs a callback at a fixed interval. - [useIntentQueue](https://filedom.method.actor/docs/reference/hooks/use-intent-queue): Buffers unique input intents between ticks. - [useStageSession](https://filedom.method.actor/docs/reference/hooks/use-stage-session): Reads all values from the enclosing StageProvider. - [useStagePark](https://filedom.method.actor/docs/reference/hooks/use-stage-park): Reads the required park position. - [useStageParkOrNull](https://filedom.method.actor/docs/reference/hooks/use-stage-park-or-null): Reads the park position when one is available. - [useStageIconSize](https://filedom.method.actor/docs/reference/hooks/use-stage-icon-size): Reads the icon size supplied by StageProvider. - [useStageBackgroundColor](https://filedom.method.actor/docs/reference/hooks/use-stage-background-color): Reads the background color for a park cover. - [useProvideWallpaperColor](https://filedom.method.actor/docs/reference/hooks/use-provide-wallpaper-color): Supplies a wallpaper color to StageProvider. - [useVirtualTree](https://filedom.method.actor/docs/reference/hooks/use-virtual-tree): Reads the filesystem tree and its mutation actions. - [useDesktopSettings](https://filedom.method.actor/docs/reference/hooks/use-desktop-settings): Reads inherited desktop display settings. - [useSound](https://filedom.method.actor/docs/reference/hooks/use-sound): Returns a soundboard for semantic game events. - [useSoundtrack](https://filedom.method.actor/docs/reference/hooks/use-soundtrack): Loops a system sound while enabled. - [useEmittedSounds](https://filedom.method.actor/docs/reference/hooks/use-emitted-sounds): Maps emitted domain events to sound effects. - [useSoundTransitions](https://filedom.method.actor/docs/reference/hooks/use-sound-transitions): Plays sounds when observed state changes match rules. ## Examples - [Pong](https://filedom.method.actor/docs/examples/pong): Pong played with real Finder icons, in local and networked modes. - [Chess](https://filedom.method.actor/docs/examples/chess): Drag-to-move chess on the Finder desktop, a denser example of positioning, drag input, and host round-trips. ## Finder Mode - [Finder Mode](https://filedom.method.actor/docs/finder-mode): Games and tools played with your desktop icons. - [People & invitations](https://filedom.method.actor/docs/finder-mode/people-and-chat): How Finder Mode connects players and sends game invitations. - [Guest servers](https://filedom.method.actor/docs/finder-mode/guest-access): Connect directly to a private test or self-hosted FinderMode server without Patreon. ## Agent skills - [filedom](https://filedom.method.actor/.well-known/agent-skills/filedom/SKILL.md): Read the filedom docs instead of answering from memory. A React renderer for the macOS desktop. Components render as real Finder icons. Use when a task involves filedom: how it works, how to set it up or configure it, or its API. ## Agent resources - [llms-full.txt](https://filedom.method.actor/llms-full.txt): The full Markdown of every page in one file. - [Page Markdown](https://filedom.method.actor/index.md): Append `.md` to any page URL to fetch that page as raw Markdown. - [JSON API](https://filedom.method.actor/api/docs/pages.json): Page index of the JSON docs API; each entry links the page's JSON and Markdown forms. Described by the OpenAPI document at https://filedom.method.actor/openapi.json. - [Agent skills](https://filedom.method.actor/.well-known/agent-skills/index.json): Agent Skills discovery index of the skills this site publishes. - [API catalog](https://filedom.method.actor/.well-known/api-catalog): RFC 9727 linkset of the APIs documented here. - [AI catalog](https://filedom.method.actor/.well-known/ai-catalog.json): ARD manifest of the agent-facing resources on this site (MCP server, skills, APIs). - [agent-readability.json](https://filedom.method.actor/agent-readability.json): Manifest of every agent-facing artifact on this site. - [Sitemap](https://filedom.method.actor/sitemap.xml): Every indexable page URL with its last-modified date.