{"id":"workspace-links","repo":"stevecastaneda/paseo-plugins","url":"https://github.com/stevecastaneda/paseo-plugins/tree/main/workspace-links","package":"@stevecastaneda/paseo-workspace-links","npm":{"package":"@stevecastaneda/paseo-workspace-links","version":"1.0.0","integrity":"sha512-366vi0vyJKhovJHU3d26mELuWPnEvlDzp9uVRTHB+h06HvJo3Wss/0gQ/tNlDOrYgMIdP55VjvVQzW+vijgpdA==","publishedAt":"2026-10-11T17:14:35.240Z","downloadsLast30Days":1739},"name":"workspace-links","description":"Quick access to workspace URLs from a JSON file, in Paseo.","categories":["productivity"],"platforms":[],"caveats":["Links open in the browser on the device viewing Paseo, so localhost means that device"],"images":["https://raw.githubusercontent.com/stevecastaneda/paseo-plugins/764f41794109da5fba12dc33a7533bf80febb8f7/workspace-links/images/explorer.png","https://raw.githubusercontent.com/stevecastaneda/paseo-plugins/764f41794109da5fba12dc33a7533bf80febb8f7/workspace-links/images/popover.png","https://raw.githubusercontent.com/stevecastaneda/paseo-plugins/main/workspace-links/icon.png"],"themes":[],"health":{"manifestValid":true,"hasReadme":true,"hasLicense":true,"hasTests":true,"hasTypecheckScript":true,"updatedRecently":true},"scannedAt":"2026-10-15T12:35:09.659Z","addedAt":"2026-09-10T17:03:36Z","npmSecurity":{"status":"passed","blockingFindings":0,"advisoryFindings":0,"scannedAt":"2026-10-15T12:14:24.405Z","version":"1.0.0","integrity":"sha512-366vi0vyJKhovJHU3d26mELuWPnEvlDzp9uVRTHB+h06HvJo3Wss/0gQ/tNlDOrYgMIdP55VjvVQzW+vijgpdA=="},"path":"workspace-links","version":"1.0.0","security":{"status":"passed","blockingFindings":0,"advisoryFindings":0,"scannedAt":"2026-10-15T12:14:24.405Z","commit":"764f41794109da5fba12dc33a7533bf80febb8f7"},"author":"Steve Castaneda","license":"MIT","paseoVersionRequirement":">=0.11.0","descriptionNodes":[{"type":"text","text":"Quick access to workspace URLs from a JSON file, in Paseo."}],"caveatNodes":[[{"type":"text","text":"Links open in the browser on the device viewing Paseo, so localhost means that device"}]],"manifest":{"id":"workspace-links","icon":"icon.png","media":["images/popover.png","images/explorer.png"],"requirements":{"paseo":">=0.11.0"}},"repoMeta":{"stars":4,"defaultBranch":"main","pushedAt":"2026-10-12T14:13:58Z"},"owner":{"login":"stevecastaneda","avatarUrl":"https://avatars.githubusercontent.com/u/171488?v=4"},"installNotesHtml":"<pre><code class=\"language-sh\">paseo plugin add npm:@stevecastaneda/paseo-workspace-links\n</code></pre>\n<p>From Paseo's plugin registry: <code>paseo plugin add stevecastaneda/workspace-links</code>.</p>\n<p>Enable plugins under <strong>Settings → Plugins</strong> on the Paseo host.</p>","readmeText":"<img src=\"https://raw.githubusercontent.com/stevecastaneda/paseo-plugins/main/workspace-links/icon.png\" alt=\"\" width=\"64\" height=\"64\">\n\n# Workspace Links\n\nA small Paseo plugin (0.11 or later) that reads `workspace-links.json` from the active workspace and puts those URLs on the Links trigger. Press the composer pill or header button to see each link's name with its URL underneath, then choose one to open it in your browser, or copy its URL. The settings button in the popover (or **Add links** when the file is empty or missing) opens the setup panel in Explorer. The Command Center item **Workspace Links** opens that panel too.\n\n<img src=\"images/popover.png\" alt=\"The Links popover with seven links, five showing a green running dot, and a copy button on the hovered row\" width=\"280\">\n\nThe trigger stays available when the workspace has no links yet, so the setup guide is always one click away. The panel never opens automatically.\n\nUnder **Show as**, switch between the composer pill and a workspace header button. Header buttons can hide the **Links** label. Changes apply to all workspaces on the connected host and persist across restarts. The composer pill is the default.\n\n<img src=\"images/explorer.png\" alt=\"The Links panel in Explorer, with setup steps for workspace-links.json and the Show as option set to Header Button\" width=\"320\">\n\n## Install\n\n```sh\npaseo plugin add npm:@stevecastaneda/paseo-workspace-links\n```\n\nFrom Paseo's plugin registry: `paseo plugin add stevecastaneda/workspace-links`.\n\nEnable plugins under **Settings → Plugins** on the Paseo host.\n\n## Configuration\n\nPut this file at the workspace root:\n\n```json\n[\n  { \"label\": \"App\", \"url\": \"http://localhost:3000\" },\n  { \"label\": \"Admin\", \"url\": \"http://localhost:3001\" },\n  { \"label\": \"Docs\", \"url\": \"https://example.com/docs\" }\n]\n```\n\nUse fixed URLs or have your existing setup/dev script generate this same file with the workspace's current URLs. Gitignore it if it contains workspace-specific values. The popover and the panel reread the file every two seconds while they are open, so there is nothing to refresh. The plugin does not execute scripts.\n\nLinks open on the **device you're using**, the same way Paseo opens its own links: your default browser in the desktop app, a new tab in the web app, or the phone's browser in the mobile app.\n\n`localhost` therefore refers to that device. When the daemon runs on another machine, or you use Paseo from your phone, `localhost` links reach the daemon's dev server only if that port is forwarded to your device.\n\nThe status dots are checked from the machine running Paseo, so a `localhost` link can show as running even when it won't open on your phone.\n\nOnly HTTP(S) URLs are supported, with up to 100 links. Missing configuration, empty lists, and invalid files have visible panel states.\n\n## Updates\n\nWorkspace and agent changes arrive through subscriptions rather than repeated\nlist requests. The Links popover and panel reread the file every two seconds\nwhile they are open.\n\nPlacement changes apply immediately in the current client. Other connected\nclients pick up saved options when they next load the options or reload the\nplugin.\n\n## Changelog\n\n### 1.0.0\n\n- Version 1.0. Nothing you use changes. From now on, a new first number means an update breaks something, a new middle number means a new feature, and a new last number means a fix.\n- The button, the Explorer tab, the Command Center entry and the empty states all use the same flat chain icon now. The tab and Command Center used an open-in-browser arrow, and the button a slanted chain.\n- The Links panel no longer opens with a \"Workspace Links\" bar and a Refresh button. The panel already rereads `workspace-links.json` every two seconds, so the button did nothing you'd notice.\n- The setup guide says the panel picks up changes on its own, instead of asking you to refresh.\n- New screenshot of the Links panel in this README.\n\n### 0.6.0\n\n- Needs Paseo 0.11 or later. The plugin now carries its own icon and screenshots, and Paseo 0.9 and 0.10 refuse to load a plugin that does. On an older Paseo, the version you already have keeps working.\n- The plugin store now takes the icon and screenshots from each release, so they match the version you install.\n- New screenshots in this README.\n\n### 0.5.3\n\n- Installing the plugin no longer downloads any other npm packages. The plugin used to install `@getpaseo/client` just for its types; it now gets them from the plugin SDK that Paseo already provides.\n\n### 0.5.2\n\n- The plugin's page in Paseo now explains that Paseo checks the status dots on the computer where the workspace runs, so a green `localhost` link may still not open on your phone.\n- A screenshot of the Links popover, with its status dots and copy button, at the top of this README.\n\n### 0.5.1\n\n- Installs again with npm 12. Installing failed with `npm ci` asking for a `package-lock.json`, because npm 12 no longer reads the lockfile this plugin shipped ([#53](https://github.com/stevecastaneda/paseo-plugins/issues/53)). The plugin no longer runs its own install step; Paseo's npm install already brings in what it needs.\n- Install from npm or Paseo's plugin registry. Installing straight from GitHub no longer works.\n\n### 0.5.0\n\n- The Links popover shows each link's URL under its name. Long URLs are shortened in the middle.\n- Each link gets an icon picked from its name or URL: docs, admin, auth, database, storage, API and more.\n- A green dot shows which links are running. Paseo checks them every few seconds while the popover is open. A hollow dot means nothing answered.\n- Hover a link to copy its URL.\n- A friendlier empty state with an **Add links** button.\n"}