[{"data":1,"prerenderedAt":5},["ShallowReactive",2],{"readme:opk-pm\u002FCli":3},{"html":4},"\u003Ch2>Opk CLI and GUI\u003C\u002Fh2>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fopk-pm\u002FCli\u002Fmain\u002Fimages\u002Fgui.png\" alt=\"Opk GUI\" loading=\"lazy\">\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Opk\u003C\u002Fstrong> is a beautiful, unified package management workflow that sits on top of existing ecosystems like npm, Bun, pnpm, Yarn, and Deno.\nIt provides a consistent interface for installing, managing, and orchestrating dependencies across different runtimes and environments.\u003C\u002Fp>\n\u003Cp>Rather than replacing existing package managers, Opk acts as a meta-layer that standardizes tooling, simplifies configuration, and enables reproducible, cross-manager workflows.\nIt focuses on developer experience, deterministic installs, and ecosystem interoperability.\u003C\u002Fp>\n\u003Ch3>Key Goals\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Unified package management across multiple ecosystems\u003C\u002Fli>\n\u003Cli>Consistent dependency and script workflows\u003C\u002Fli>\n\u003Cli>Cross-manager compatibility and migration\u003Cul>\n\u003Cli>NEW in 0.5: Keep multiple package managers in sync\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Type-safe configuration and extensibility\u003C\u002Fli>\n\u003Cli>Reproducible and deterministic environments\u003C\u002Fli>\n\u003Cli>Build the best GUI for package management\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Opk enables developers to manage their packages at once and run them anywhere.\u003C\u002Fp>\n\u003Ch2>Installation\u003C\u002Fh2>\n\u003Cp>Opk CLI is an npm package that should be installed globally.\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-shell\">npm i -g opk-pm\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>Commands\u003C\u002Fh2>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fopk-pm\u002FCli\u002Fmain\u002Fimages\u002Fcli.png\" alt=\"Opk CLI\" loading=\"lazy\">\u003C\u002Fp>\n\u003Ch4>Package Management:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ccode>opk add &lt;pkg...&gt;\u003C\u002Fcode> - Add packages via selected package manager, then sync+generate\u003C\u002Fli>\n\u003Cli>\u003Ccode>opk remove &lt;pkg...&gt;\u003C\u002Fcode> - Remove packages via selected package manager, then sync+generate\u003C\u002Fli>\n\u003Cli>\u003Ccode>opk install\u003C\u002Fcode> - Install via selected package manager, then sync+generate\u003C\u002Fli>\n\u003Cli>\u003Ccode>opk update [pkg...]\u003C\u002Fcode> - Update via selected package manager, then sync+generate\u003C\u002Fli>\n\u003Cli>\u003Ccode>opk audit\u003C\u002Fcode> - Audit via selected package manager, then sync+generate\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Execution:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ccode>opk run &lt;script&gt; [args...]\u003C\u002Fcode> - Run scripts via selected package manager\u003C\u002Fli>\n\u003Cli>\u003Ccode>opx &lt;cmd&gt; [args...]\u003C\u002Fcode> - Execute binaries via selected package manager\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Project Management:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ccode>opk init\u003C\u002Fcode> - Prompt for project metadata, write \u003Ccode>package.ts\u003C\u002Fcode>, run ts-pkg sync+generate\u003C\u002Fli>\n\u003Cli>\u003Ccode>opk migrate\u003C\u002Fcode> - Migrate from an existing \u003Ccode>package.json\u003C\u002Fcode> to \u003Ccode>package.ts\u003C\u002Fcode>, then sync+generate\u003C\u002Fli>\n\u003Cli>\u003Ccode>opk generate [configPath] [packageJsonPath]\u003C\u002Fcode> - Generate \u003Ccode>package.json\u003C\u002Fcode> from ts-pkg config\u003C\u002Fli>\n\u003Cli>\u003Ccode>opk sync [configPath] [packageJsonPath]\u003C\u002Fcode> - Sync and regenerate using ts-pkg APIs\u003C\u002Fli>\n\u003Cli>\u003Ccode>opk gui [--port &lt;port&gt;]\u003C\u002Fcode> - Serve the built Opk GUI (defaults to port \u003Ccode>4173\u003C\u002Fcode>)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Info:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ccode>opk list\u003C\u002Fcode> - Show dependencies in a native opk UI\u003C\u002Fli>\n\u003Cli>\u003Ccode>opk info &lt;pkg&gt;\u003C\u002Fcode> - Show package info in a native opk UI\u003C\u002Fli>\n\u003Cli>\u003Ccode>opk outdated [--table|--list]\u003C\u002Fcode> - Show outdated dependencies in a native opk UI\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Shared PM flags\u003C\u002Fh3>\n\u003Cp>These flags are mapped by Opk to the selected package manager's native flag equivalents:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>--lock-only\u003C\u002Fcode>, \u003Ccode>--frozen-lockfile\u003C\u002Fcode> (for \u003Ccode>opk install\u003C\u002Fcode>, \u003Ccode>opk update\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>\u003Ccode>--ignore-scripts\u003C\u002Fcode>, \u003Ccode>--ignore-engines\u003C\u002Fcode>, \u003Ccode>--ignore-optional\u003C\u002Fcode> (for \u003Ccode>opk add|install|update\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>\u003Ccode>--ignore-workspace-root-check\u003C\u002Fcode>, \u003Ccode>--ignore-pnp\u003C\u002Fcode> (for \u003Ccode>opk add|install|update\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>\u003Ccode>--production\u003C\u002Fcode> \u002F \u003Ccode>--prod\u003C\u002Fcode>, \u003Ccode>--dev\u003C\u002Fcode>, \u003Ccode>--peer\u003C\u002Fcode>, \u003Ccode>--optional\u003C\u002Fcode> (for \u003Ccode>opk add|install|update\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>\u003Ccode>--verbose\u003C\u002Fcode>, \u003Ccode>--silent\u003C\u002Fcode> (for \u003Ccode>opk add|remove|install|update|audit\u003C\u002Fcode>)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Examples:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-shell\">opk add react --dev --ignore-scripts\nopk install --frozen-lockfile --silent\nopk update --lock-only --verbose\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>Build\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Ccode>bun run build\u003C\u002Fcode> now builds the CLI and the GUI, and stages GUI assets into \u003Ccode>dist\u002Fgui\u003C\u002Fcode> for \u003Ccode>opk gui\u003C\u002Fcode>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>package.ts\u003C\u002Fh2>\n\u003Cpre>\u003Ccode class=\"language-ts\">import { definePackage, BunPm } from '@opk\u002Fts-pkg'\n\nexport default definePackage({\n  pm: BunPm,\n  name: 'my-awesome-project',\n  description: 'this is an amazing project',\n  license: 'MIT',\n  type: 'module',\n})\n\u003C\u002Fcode>\u003C\u002Fpre>\n",1787323193641]