SuperAPI AI Directory

app-it

Open-source (MIT) Claude Code / Codex skill that turns a local web project into an installed, Dock-launchable macOS desktop app — native WebKit window, app icon, and clean start/stop — without Electron or Tauri. Local-only, no telemetry; Windows in beta.

Open website

About this tool

app-it is an open-source AI assistant skill/plugin for macOS that turns a local Web project (or hosted Web app) into a .app desktop application launchable from the Dock. It uses a native Swift WKWebView shell, does not introduce Electron or Tauri, and does not require rewriting the existing project—it only generates a reusable launcher around the existing development environment.

Main capabilities

  • Convert a local Web project into a macOS .app: it has its own window, name, Dock icon, launches on double-click, and quits with ⌘Q while releasing the port.
  • Uses a native Swift WKWebView shell by default, ensuring the Dock icon remains the user app; it falls back to Chrome --app mode only when the project requires Chromium-specific APIs.
  • Supports wrapping hosted Web apps: specify a published link via external_url (for example, a published Claude Artifact); each user logs in with their own account inside the app window, with no shared keys.
  • Generates a real, universal (arm64 + x86_64), ad-hoc signed, Gatekeeper-friendly .app, and generates a .icns icon.
  • Properly handles lifecycle: when the window is closed (⌘W / red close button), the development server stays warm and can restart in about 250 milliseconds; ⌘Q quits the app and releases the port.
  • Outputs a report explaining every change and how to undo it.
  • Provides the app-it-static companion tool for finished apps: it locally statically serves build artifacts such as dist/, build/, out/, using about 15 MB instead of the development server's about 300–700 MB.

Usage

  • Prerequisites: Claude Code or Codex (for marketplace installation); swiftc (Xcode Command Line Tools) for the native WebKit shell; python3 for app-it-static's server mode; Chrome only when the Chrome fallback path is needed.
  • Trigger it by asking the assistant in any local Web project; natural-language triggers include: “make this clickable from the Dock”, “give this an icon”, “dockify this”, “package this as a local app”.
  • Wrapping a hosted Web app: point app-it at its URL instead of copying the source code. Claude Artifact is a common scenario, and the hosted artifact link should be used; a raw .jsx file can work as an ordinary local React app only when it does not depend on the Claude hosted runtime (window.claude, window.storage, MCP prompts, or authentication provided by Claude).
  • Optionally install app-it-static: claude plugin install app-it-static@app-it or codex plugin add app-it-static@app-it, then run /app-it-static.
  • Development installation (before release) or manual skill installation methods can be found in the repository instructions.
  • Installed apps are located by default in ~/Applications/App It/; you can drag that folder to the right side of the Dock once, and after that all new apps will automatically appear in the Stack. This can be overridden via APP_IT_INSTALL_DIR.
  • The default port mode is port_mode: "fallback", which allows sibling local apps to coexist by scanning upward from the preferred port; use port_mode: "fixed" only when the app must stay on a fixed localhost origin (such as browser storage or an OAuth callback).

Use cases

  • Quickly turn a locally developed Web project into a macOS desktop application for convenient daily launching.
  • Wrap a published hosted Web app (such as a Claude Artifact) and log in to use it in a separate window.
  • Lightweight static distribution for finished apps: use app-it-static to avoid starting a full development server.
  • For AI-generated local software: the repository provides app-it compatible verification; passing app-it verify --strict means the app can build, launch, serve, has an independent process, and can exit cleanly.

Limitations

  • macOS only (this is explicitly by design). Windows is in early beta, using a separateStandalone plugin, still requires more real-device verification.
  • It is not Electron, Tauri, or a native rewrite; it only wraps the existing development environment, without replacing, migrating, or adding bundler dependencies.
  • It is not a general-purpose signed distribution system: no notarization, no App Store, no auto-update, no installer. A self-contained package wrapping a hosted web app can be compressed and shared, but it remains a locally bundled app with temporary signing; recipients must trust the bundle and sign in with their own accounts.
  • It is not a hosting service, with no cloud execution and no online demo.
  • It only makes additive, revocable changes; it does not rewrite product logic, add runtime dependencies, or require a terminal window to stay open. During verification, local development server processes may be started and stopped. It does not collect telemetry, send project data, or handle keys.

License MIT, see the repository LICENSE for details.