Verified 2026-08-05 What was checked, and when — not a guarantee it is still true.

Will my plugin's hooks and scripts run in Cowork?

Yes — plugin hooks do fire in Cowork. The determinant is where the plugin was installed from: a plugin installed through the Cowork application is visible to Cowork sessions, and one installed through the CLI's own path is not, because they occupy different namespaces. The plugin-root token resolves differently depending on which consumer expands it, so use it for file-tool reads and discover the mounted path at runtime for anything you shell out to.

Do not use a hook to export environment variables for your skill's shell commands.

Measured

Hooks run, but the environment they modify is not the environment those commands see. This is a common way a plugin appears broken in Cowork while working in the CLI: the hook fires, the export succeeds, and the value is simply absent downstream.

Expect plugin hooks to fire in Cowork.

Measured

Hooks shipped by a plugin do run. An earlier belief that they were disabled was wrong; the real determinant is installation namespace, not hook support.

Install a plugin through the Cowork application if you want Cowork sessions to see it.

Measured

Plugins installed through the CLI's own installation path land in a namespace that Cowork sessions never read, so the plugin appears installed and is simply invisible. This is the usual explanation for 'my plugin works in the CLI but not in Cowork'.

Do not write into your plugin's own directory at runtime.

Measured

Plugin content is mounted for reading. Treat everything shipped with the plugin as immutable during a session and put generated state in the outputs location.

Expect plugin files to be present as a mounted directory, and find it rather than hardcoding it.

Measured

Plugin content is made available to the session as its own mount. The exact location embeds identifiers that vary per plugin and per install source, and the shape has changed across releases, so discovery at runtime is the only stable approach.

Use the plugin-root token for file-tool reads, and discover the mounted path at runtime for anything you execute.

From binary

The plugin-root token expands differently depending on which consumer expands it and which execution lane the session is in. Expanded for one consumer it names a location the other cannot reach. Reading plugin files through the file tools with the token is reliable; executing a script by that path is not. For execution, locate the plugin's mounted directory at runtime.

Caveat: Resolution differs between the two execution lanes; this rule is written to be correct in both.

What is not established

What the confidence labels mean
Measured
Observed live in a real session, with a control where noted.
From binary
Read out of a shipped artifact; the behaviour was not exercised.
Inference
Stated as inference in the source material — read the caveats.