id = "cookcli" name = "CookCLI" homepage = "https://github.com/cooklang/cookcli" description = "Command line tools for working with Cooklang recipes." executables = ["cook"] platforms = ["macos", "linux"] [dotfiles] paths = ["~/.config/cooklang/", "~/Library/Application Support/cook/"] secret = [] # CookCLI documents ./config/, ~/.config/cooklang/ and the macOS fallback # ~/Library/Application Support/cook/ for aisle.conf and pantry.conf. # https://github.com/cooklang/cookcli#configuration [commands] format = 1 label = "CookCLI" description = "Serve a folder of .cook recipes as a local web UI with `cook server`. Host binding, proxy and CORS options are left out except the origin list." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.subcommand]] path = ["server"] label = "Run the recipe server" [[commands.subcommand.source]] id = "src" kind = "help" url = "https://github.com/cooklang/cookcli/blob/main/src/server/mod.rs" revision = "main 2026-10" evidence = """ /// Root directory containing your recipe files #[arg(short = 'p', long, default_value_t = 9080)] // --port, -p /// Port number for the HTTP server /// Automatically open the web interface in your default browser #[arg(long, default_value_t = false)] open: bool, // --open /// Origin allowed to make cross-origin browser requests (repeatable) /// Pass once per origin, e.g. --cors-origin http://localhost:3000. By /// --url-prefix "/cook" will make the server available at /cook/ instead """ [[commands.subcommand.field]] id = "base_path" label = "Recipe directory" type = "path" position = 0 path = { kind = "directory", role = "input" } sources = ["src"] [[commands.subcommand.field]] id = "port" label = "Port" type = "integer" option = ["--port", "-p"] sources = ["src"] [[commands.subcommand.field]] id = "open" label = "Open in browser" type = "boolean" option = ["--open"] sources = ["src"] [[commands.subcommand.field]] id = "url_prefix" label = "URL prefix" description = "Subpath behind a reverse proxy; must start with /." type = "string" option = ["--url-prefix"] sources = ["src"] [[commands.subcommand.field]] id = "cors_origin" label = "Allowed CORS origins" type = "url" option = ["--cors-origin"] multiple = true sources = ["src"] [[commands.subcommand.task]] id = "serve" label = "Serve recipes" set = { open = [true] } fields = ["base_path", "port", "open"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["base_path", "port", "open"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["url_prefix", "cors_origin"]