Yard gives each local app a stable *.localhost hostname so you can run
multiple projects without port juggling.
@kranehq/yard: CLI that starts your command withYARD_*env vars and proxies traffic from<name>.localhost:<publicPort>.@kranehq/yard-vite: Vite plugin that reads Yard env vars and configures the dev server for Yard.
bun add -g @kranehq/yard- Configure your dev server to use
YARD_PORTandYARD_HOST. - Start it through Yard:
yard -n myapp -- bun run dev- Open:
http://myapp.localhost:3000$ yard --help
Yard routes local dev servers to stable *.localhost hostnames.
Usage:
yard [options] -- <command> [args...]
Options:
-n, --name <name> Project hostname prefix (required unless in config)
-p, --port <port> Public proxy port (default: 3000)
-c, --config <path> Config module path (default: ./yard.config.ts)
-h, --help Show help
Examples:
yard -n myapp -- bun run dev
yard -n api -p 4000 -- bun run dev
yard -c ./yard.config.ts -- bun run devYARD_HOST:<name>.localhostYARD_PORT: allocated internal port for your dev server to bind toYARD_PUBLIC_PORT: external proxy port
By default, Yard reads yard.config.ts as an ESM module.
export default {
name: "myapp",
port: 3000,
};Flags override file values.
Install:
bun add -d @kranehq/yard-viteConfigure:
import { defineConfig } from "vite";
import { yard } from "@kranehq/yard-vite";
export default defineConfig({
plugins: [yard()],
});Run through Yard:
yard -n myapp -- bun run dev