PluginProbe
OpenStation: Desktop Windows, Dock & Virtual Desktops for WP Admin / 1.1.5
OpenStation: Desktop Windows, Dock & Virtual Desktops for WP Admin v1.1.5
1.1.10 1.1.9 1.1.8 1.1.7 1.1.6 1.1.5 1.1.4 1.1.3 1.1.2 1.1.1 1.1.0 1.0.1 1.0.0 0.9.8 0.9.7 0.9.6 0.9.4 0.9.5 0.9.3 0.9.2 0.9.1 0.9.0 0.8.9 0.8.8 0.8.7 All 34 releases
desktop-mode / readme.txt

readme.txt in OpenStation: Desktop Windows, Dock & Virtual Desktops for WP Admin 1.1.5, at readme.txt

327 lines 22.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 === OpenStation: Desktop Windows, Dock & Virtual Desktops for WP Admin ===
2 Contributors: automattic, allterraindeveloper, epeicher, mmtr86, nickhamze, nuriapena
3 Tags: admin, dashboard, desktop, productivity, ai
4 Requires at least: 6.0
5 Tested up to: 7.1
6 Requires PHP: 7.4
7 Stable tag: 1.1.5
8 License: GPLv2 or later
9 License URI: https://www.gnu.org/licenses/gpl-2.0.html
10
11 A windowed workspace for wp-admin. Open posts, media, and settings side by side, with a dock, virtual desktops, and a Cmd+K palette.
12
13 == Description ==
14
15 **wp-admin forgets. OpenStation doesn't.**
16
17 You know the moment. You're deep in a post and you need one image from the Media Library. You click over, find it, click back, and everything you had going is gone. Your scroll position, your half-typed thought, the three other things you had queued up in your head.
18
19 That's not a bug you hit. That's the design. wp-admin shows you one screen at a time, and every navigation throws the last one away. It has worked this way since 2003, like a fridge that empties itself every time you close the door.
20
21 WordPress has rebuilt almost everything else. The editor, the site editor, the patterns, the styles. The admin's one-screen-at-a-time model is the layer nobody touched.
22
23 OpenStation touches it.
24
25 https://www.youtube.com/watch?v=g5MLB3WMlCc
26
27 Install it and admin screens become draggable, resizable windows. Edit a post while the Media Library sits open next to it. Drag an image from one window straight into the other. Keep comments open in the corner. Reload the browser and your window layout — open pages, positions, sizes, and window states — comes back where you left it.
28
29 OpenStation itself is free, GPL, and opt-in per user. One click in the admin bar turns it on for you. One click turns it off. Nobody else on your site sees anything change, and deactivating the plugin restores the classic admin exactly. No Core patches and no lock-in. Optional AI providers may charge for their service.
30
31 Built and maintained by [Automattic](https://automattic.com), the company behind WordPress.com, Jetpack, WooCommerce, and Tumblr.
32
33 = Work on more than one thing at once =
34
35 Admin pages open as windows, including pages added by most other plugins. Drag them, resize them, snap them, tile them, minimize them to a taskbar. The admin menu becomes a dock of icons. Two editors open at once is one click away.
36
37 = Never lose your place =
38
39 Moving between open windows leaves each page in place. Across reloads, OpenStation remembers your open pages, window positions, sizes and states, virtual desktops, and focus. Closing a window with unsaved changes warns you first.
40
41 = A desk you can actually put things on =
42
43 Drop posts, media, and links right onto the wallpaper. Sort them into folders. Trash them to a Trash that actually holds things. The stuff you're working on this week can just sit out where you can see it.
44
45 = One desktop per job =
46
47 Virtual desktops, the way your operating system does them. One for writing. One for the store. One for comment triage. One for that redesign you keep poking at. Switch between them without closing anything.
48
49 = Find anything with Cmd+K =
50
51 The full WordPress command palette, plus slash commands from your plugins, all under one keystroke. Turn on the optional AI assistant and you can ask it things like "which post had the comment asking for the recipe?" and it searches your own content to answer. (Requires an AI provider configured in Settings → Connectors on WordPress 7.0+. Details under "External services" below.)
52
53 = See how your site fits together =
54
55 The Corkboard is an interactive, zoomable map of how your posts, pages, and products link to each other. Pan around it. Find the orphans. Find the hubs.
56
57 = Running a store? =
58
59 Orders, Products, Coupons, and Customers become browsable folders with stock and sale ribbons. Open a customer to see their lifetime spend and what they buy most. Follow a product to its buyers, or a coupon to who redeemed it.
60
61 = Make it yours =
62
63 Wallpapers, from color presets to animated scenes to your own photo. Live widgets pinned to the desktop: drafts, stats, recent comments, a focus timer. Uploadable desktop themes, including a built-in Legacy theme that brings the old WordPress blue back in one click. And Mio, a soft-body desk companion that drifts across your wallpaper and gets bumped around by your windows. Off by default. You'll turn it on.
64
65 = For developers =
66
67 Extend OpenStation through documented PHP and JavaScript APIs. Register windows, icons, wallpapers, widgets, commands, and settings tabs through stable `openstation_register_*` PHP APIs and a typed JavaScript API; customize dock items through documented hooks; add AI tools with the WordPress Abilities API. Copy-paste examples live in the [developer docs on GitHub](https://github.com/WordPress/openstation/tree/trunk/docs).
68
69 = External services =
70
71 No external service is required for OpenStation's desktop interface. The optional AI Assistant and two user-initiated enrichment features make the external requests described below.
72
73 **AI Assistant**
74
75 The optional AI Assistant sends data to the **AI provider you configure in WordPress's Settings → Connectors** (for example OpenAI, Anthropic, or Google). Generation is routed through WordPress 7.0's built-in AI Client, which supplies the credentials stored in Connectors. The plugin never handles an API key itself. With no provider configured in Connectors, no external AI requests are made.
76
77 When the AI Assistant is enabled and a user invokes it (via Cmd+K or the slash-command palette):
78
79 * **What is sent:** the user's prompt, the conversation history for the active session, and tool-call metadata. The plugin's built-in tools (`search_posts`, `search_pages`, `search_comments`) run WordPress's native keyword search and may include excerpts of the matching posts/pages/comments in tool results, which are then sent back to the provider as part of the agentic loop.
80 * **When it is sent:** on user-initiated AI requests, and (if an administrator enables "Score new comments with AI") on comment-save hooks for spam analysis. Posts, pages, and taxonomy terms are not sent automatically.
81 * **Why it is sent:** to obtain model completions and tool-call decisions that drive the AI Assistant.
82 * **Who provides the service:** whichever provider you configured in Settings → Connectors. Which provider (and endpoint) receives the data depends entirely on that configuration. Review the chosen provider's own terms and privacy policy (e.g. OpenAI, Anthropic, or Google).
83
84 **URL shortcut favicons**
85
86 When an authorized user creates a desktop shortcut to an external URL, OpenStation asks that URL for its page HTML and favicon so the shortcut can display the site's icon. The request is made from your WordPress server and sends the requested URL, the server's IP address, an OpenStation user-agent string, and normal HTTP request metadata to the operator of that site. This happens only when a user creates the shortcut. The destination site's terms and privacy policy apply.
87
88 **WordPress.org plugin information**
89
90 When an authorized user opens or refreshes parts of OpenStation's Plugins window, OpenStation may request public plugin details, update metadata, and review excerpts from WordPress.org. These requests send plugin slugs, the site's locale, and normal HTTP request metadata to WordPress.org. This information is used only to display and manage plugins. Review the [WordPress.org Privacy Policy](https://wordpress.org/about/privacy/).
91
92 OpenStation's OAuth relay does not contact a service by itself. Third-party plugins that configure the relay may contact their own providers and are responsible for disclosing those services.
93
94 == Installation ==
95
96 1. Install via **Plugins → Add New** (search for "OpenStation"), or upload the plugin folder to `/wp-content/plugins/`.
97 2. Activate the plugin through the **Plugins** screen.
98 3. Click the **desktop** icon in the admin bar's top-right corner. The admin reloads inside the desktop shell.
99 4. Click the same icon again at any time to return to the classic admin.
100
101 = Optional: enable the AI Assistant =
102
103 1. In **Settings → Connectors**, set up an AI provider (OpenAI, Anthropic, or Google). Requires WordPress 7.0+.
104 2. In OpenStation, open **OpenStation Preferences → Features** and turn on **AI assistant** (it's off by default).
105 3. Press **Cmd+K** (or **Ctrl+K**) anywhere in OpenStation to open the AI assistant.
106
107 == Frequently Asked Questions ==
108
109 = Isn't this just a gimmick? =
110
111 The desktop look is the visible part, so it's a fair question. But the look is a consequence, and the mechanism underneath is the point: windows hold their state, so switching tasks stops costing you your place. wp-admin is a single-document interface where every navigation destroys the last screen. OpenStation replaces that with the same concurrency model your operating system has used for decades. The research behind it goes back to Henderson and Card's "Rooms" paper at Xerox PARC in 1986. The wallpaper is just what that model looks like when you build it.
112
113 = Will this slow down my site? =
114
115 OpenStation's desktop interface and browser assets are loaded only inside wp-admin, and only for users who have turned it on. Its PHP integration still participates in normal WordPress request handling where needed, including tracking content changes, but visitors never receive the desktop UI.
116
117 = Does this change anything for users who don't opt in? =
118
119 No. The classic admin is untouched until a user toggles OpenStation on for themselves. Deactivating the plugin restores vanilla Core exactly.
120
121 = Does it work with my other plugins? =
122
123 Most plugin admin pages open as windows without special integration. Plugins that depend on running in the top-level browser context or use unusual navigation may need compatibility work. Plugins can also register their own native windows, widgets, and commands for a deeper integration.
124
125 = Does the plugin require an external service to function? =
126
127 No. The desktop shell, windowing, dock, taskbar, virtual desktops, widgets, wallpapers, and extension APIs work without an external service. The optional AI Assistant requires a configured AI provider. OpenStation also makes limited, user-initiated requests to resolve URL-shortcut favicons and display WordPress.org plugin information. See "External services" in the description.
128
129 = Does it patch WordPress core? =
130
131 No. Every feature is wired through public WordPress actions and filters.
132
133 = How do I turn OpenStation off for my user? =
134
135 Click the desktop icon in the admin bar a second time. The plugin can also be deactivated globally from the Plugins screen.
136
137 = Where is the developer documentation? =
138
139 In `docs/` inside the plugin, and on [GitHub](https://github.com/WordPress/openstation/tree/trunk/docs). The hook reference, JavaScript reference, bridge protocol, and copy-paste examples all live there.
140
141 == Screenshots ==
142
143 1. Real multitasking: your posts, your preferences, and the Trash open side by side as windows.
144 2. Make it yours: accent colours, wallpaper presets and animated scenes, and a dock on whichever edge you like.
145 3. Find anything with Cmd+K: the Site Assistant opens admin pages, runs commands, and answers questions about your content.
146 4. Give an AI agent its own instructions and tools, then set it to work on your posts, media, and comments.
147 5. Live widgets on the wallpaper: post stats, recent comments, drafts, a notepad, and more from your plugins.
148 6. Mio, your desk companion, tuned to whatever shape, colour, and mood suits you.
149 7. One desktop per job: keep writing, the store, and moderation on separate Spaces.
150 8. Games built into the desktop, with a scoreboard shared across everyone on your site.
151 9. Corkboard: a zoomable map of how your posts and pages link together.
152
153 == Credits ==
154
155 OpenStation is brought to you by [Automattic](https://automattic.com). The plugin is open source under GPLv2-or-later; contributions are welcome on [GitHub](https://github.com/WordPress/openstation).
156
157 = Third-party libraries =
158
159 The plugin bundles the following third-party JavaScript library, loaded on demand only when a feature that needs it is in use:
160
161 * **[PixiJS](https://pixijs.com/)** (MIT License) — used by the **Corkboard** window, built-in canvas wallpapers (e.g. the animated WordPress logo), the **Mio** desk companion, and the **Inkfall** typing game. PixiJS is loaded from the plugin's own `assets/vendor/` directory; no CDN requests are made.
162
163 = Data files =
164
165 The **Inkfall** game's word list (`assets/games/inkfall/words.txt`) is generated from the following sources (attribution also ships in the file's header):
166
167 * **[FrequencyWords](https://github.com/hermitdave/FrequencyWords)** by Hermit Dave (CC-BY-SA 4.0) — English word-frequency ranking derived from the OpenSubtitles corpus.
168 * **[english-words](https://github.com/dwyl/english-words)** by dwyl (Unlicense) — used as a validity filter.
169 * **[LDNOOBW English list](https://github.com/LDNOOBW/List-of-Dirty-Naughty-Obscene-and-Otherwise-Bad-Words)** (CC-BY 4.0) — used as an exclusion filter.
170
171 == Changelog ==
172
173 = 1.1.5 =
174 * Add OpenStation Beta: install builds from PR branches, trunk, or stable
175 * Pin every action to a commit SHA, prune closed PRs' zips from ci-artifacts
176 * Shell screen: boot the desktop from its own admin page instead of riding on the Dashboard
177 * Register --wp-admin-theme-color so chromeless documents never compute it to transparent
178 * Sync active Post/Page tab when navigating to Add Post from the Dock
179 * Attribute columns save to active window id
180 * Hotfix: a dock flyout holds a rail out, it never summons a parked one
181 * Revisions: open the revision browser in its own window
182 * Two low-contrast fixes in native windows: the shell document leaves quirks mode, and a neutral crumb stops pinning its paint inline
183 * Window channels: one set of books, so a window can leave its loading overlay
184 * Command palette: a harvested command that throws says so, instead of nothing at all
185 * Widgets: declare the card's token contract, so a widget's muted text stops landing at 3.81:1
186 * In-window navigation: ask before painting, so a cancelled "Leave site?" stops stranding the window
187
188 = 1.1.4 =
189 * Tooling: a deterministic boot-cost measurement for the shell document
190 * Native-window script data ships once per handle, not once per window (boot document −8.9%)
191 * The boot config ships references, not copies (boot document −12.8%)
192 * The shell-bundle diet — five features leave desktop.min.js (−21% vs the v1.1.3 release)
193 * Tooling: mirror docs/ into the GitHub wiki on every trunk push
194 * Purge pre-1.0 history and reconcile every page with the code
195 * Agents: give the cast faces, and rebuild create as a guided flow
196 * Shared admin-asset cache + hover window prewarming (opt-in)
197 * The shell asks the service worker for a screen before you click it
198 * Fix: Sub-pages within main page are not shown in dock menu
199 * Fix: Tile icons in the wallpaper can't display correctly some characters
200 * Windows stop paying for a command palette they never show
201 * The command palette stops costing every window and every boot
202 * Sync layout and status on settings rollback
203 * Decode HTML entities in Corkboard titles.
204 * A window stops building the admin bar it never draws
205 * Perf regression sweep: every finding, fixed
206 * Show a loader in place for every lazy-loaded surface
207 * Corkboard: keep a sparse board centred and explained
208 * The shell stops bouncing /wp-admin/ through the portal
209 * Trash: Hide the list chrome while the bin is empty
210 * Status ring: report classic form saves, and stop reporting reads
211 * Dynamic dock: auto-hide behavior setting, and one shared work area so windows, widgets, icons and graphs stay clear of the dock
212 * Adding Nuria as a contributor
213
214 = 1.1.3 =
215 * Refresh file associations when openers change
216 * Add Code Blue, the error-log reader app
217 * Station Home: stop claiming Dashboard subpages
218 * Add MailPoet compatiblity
219 * Station Home: make it opt-in via OS Settings → Features
220 * Components: the missing-import demo shows the code it talks about
221 * Desktop icons: one reading order per canvas, and a bounded scan
222 * Trash: localize config before the lazy payload harvest
223 * Corkboard: disc nodes by default, pins one row away
224 * Unfocus effects: split view is not "behind"
225 * Menu-refresh probe: attach script data before the payload harvest
226 * Windows: companion stylesheets, and the Woo CSS stops riding every page
227 * Plugin icons still missing
228 * Defer every window stylesheet to first open; fix shared-bundle configs; real theming tokens in Users/Profile
229 * Virtual desktops: rename in place, and four overview fixes
230 * Defer the command palette's Gutenberg runtime to first ⌘K
231
232 = 1.1.2 =
233 * Window: the open-animation deadline must not outlive its window
234 * Update notice: show the vinyl card when the release post lands late
235 * Add native Station Home dashboard
236 * Explorer: better third party apps integration
237 * Icons: adopt @wordpress/icons and draw the shell from one set
238 * Files: a drag out of the Media Library lands on the desktop
239 * Preserve and forward select host aria-label
240 * Navigation: one model decides where every menu, app and control lives
241 * Take the shell off the editor's typing path
242 * Widgets: reveal the add button on hover and snap floating widgets to a grid
243 * Appearance → Editor: the window's tab strip goes dark once the site editor loads
244 * Replace About scene with RSS-powered journal
245 * Tests: End the About CSS slice at the next section, not a named one
246 * Dock: keep off-site admin menus out, and put the wp-admin originals back
247
248 = 1.1.1 =
249 * My WordPress: let the entity hover card follow the desktop theme
250 * Expose and sync status ribbons setting
251 * Load window, wallpaper and widget bundles on demand
252 * Components: add <os-field-row>, <os-token-field> and <os-repeater>
253 * Windows: guard focus(), unstick the opening class, add child windows
254 * Files: make the conflict toast's "View folder" actually open the folder
255 * Notch: place it behind the windows
256 * Update the wp.org screenshots for the current shell
257 * Windows: make Reload a common action for native windows too
258 * Themes: answer every palette literal in the Legacy snapshot
259 * Settings: open the Custom accent's colour wheel on its own swatch
260 * Components: a dark dialog owns its surfaces, not just its text
261 * Redesign the WordPress Themes workspace
262 * Hide iridescence slider when effect is off
263 * Hide wobble sliders when effect is off
264
265 = 1.1.0 =
266 * Consolidate navigation into a single dock
267 * Notes: Merge the sticky-notes into pinned notes
268 * Confirm dialog: route Enter to the focused button, trap and restore focus
269 * Posts window: Pluralize the bulk-action confirm text
270 * Windows: Fix the accessibility semantics of controls, tabs and loading
271 * Make the active window tab a frosted plate that slides
272 * A11y: keep actionable toasts alive while attended, trap focus in first-run dialogs
273 * Add the missing Domain Path header
274 * AI: Internationalize the assistant overlay
275 * Dashboard: Stop the welcome panel dismiss opening a stray window
276 * Shell: exit OpenStation when the plugin stops being active
277 * AI: Drop the SSE transport and answer over a single request
278 * Activity indicator: settle on the response, not on the promise
279 * Native windows: Remove the first-open intro modals
280 * Woo relations: a refund is not a purchase; user tiles: carry their key
281 * Settings: Redesign of this panel and regrouping
282 * Refresh folder share action on settings save
283 * Fixes: silent settings loss, folder-sharing visibility, and wallpaper shortcuts
284 * Dock: Move the admin bar's jobs into the dock and a notch
285 * Trash: Drop the desktop icon, and let a placeable tile choose its rail
286
287 = 1.0.1 =
288 * AI: the assistant answers over a single request again; live progress streaming is gone
289 * Tile contrast, comments-window styling, Overview clicks, and preview refreshes
290 * Always show the Agents section in WP Explorer
291 * Windows: Preserve fullscreen state after leaving Overview
292 * Decode HTML entities in plugin install toast
293 * Settle a pending Overview exit before re-entering
294 * AI: surface an empty final answer as an error instead of a silent success
295 * Experimental: Set OpenStation windows free into real OS windows (Electron adapter)
296
297 = 1.0.0 =
298 * Desktop Mode is now OpenStation — new name, new look, same plugin. Settings, files, sessions and desktop layouts carry over untouched.
299 * The site folder is now WP Explorer, and OS Settings is now OpenStation Preferences.
300 * A new palette and typography, with four wallpapers: Galaxy (the new default), Space, Holomesh and Pulsemesh.
301 * Desktop Mode (Legacy) — a built-in desktop theme that puts the previous look back in one click, WordPress blue included.
302 * Mio — a soft-body desk companion that drifts across the wallpaper and gets pushed around by your windows. Off by default; turn it on from the dock.
303 * Holographic controls, a new Switch component, and a searchable Components tab in OpenStation Preferences.
304 * Multi-select everywhere: click, Ctrl-click, Shift-click, marquee and Cmd+A, with WordPress's own bulk actions and multi-item drag.
305 * Custom post types now appear in WP Explorer, grouped by the plugin or theme that registered them.
306 * Post tiles show their featured image instead of a generic icon.
307 * WooCommerce — Orders, Products, Coupons and Customers as browsable folders, with stock and sale ribbons, customer lifetime spend, and coupon redemption views.
308 * The editor's preview companion follows your typing in the classic editor too, and opens straight away instead of waiting on a save.
309 * Many fixes: Media Library uploads, context menus near the screen edge, Quick Edit after list refreshes, revisions opening in-window, window state across refreshes.
310 * The portal URL moved from `/desktop-mode/` to `/openstation/`. Reinstall the app if you added OpenStation to your home screen.
311 * For plugin authors: `wp.desktop` is now `wp.os`, `<wpd-*>` components are `<os-*>`, PHP functions and hooks use the `openstation_` prefix, and activity channels moved to `os/<event>`. Stored data — options, meta, custom tables, REST namespaces and the WordPress.org slug — is unchanged.
312
313 = 0.9.8 =
314 * Desktop Themes — uploadable ZIP theme system
315 * Drafts widget with an AI writing assistant, window corner-radius setting, live split-view editor preview
316 * AI Agents framework: agents as WordPress users, abilities runner, chat with persisted conversations
317 * Redesigned two-pane Comments window, Aero Peek dock previews, window reveal animations
318 * Security: closed privilege-escalation and session-bypass paths; strict structured-output schemas at the provider boundary
319 * Many smaller fixes and polish
320
321 Earlier releases are on the [GitHub releases page](https://github.com/WordPress/openstation/releases).
322
323 == Upgrade Notice ==
324
325 = 1.0.0 =
326 Desktop Mode is now OpenStation. Everything carries over: settings, files, sessions, desktop layouts. Plugin authors: `wp.desktop` is now `wp.os`; see the changelog for the rename map.
327