# Global State

One of the most powerful ways we can enable an extension to pass information between the client and the webview is using VS Code's `globalState` and message passing capabilities.&#x20;

However, to enable extensions to interact with other extensions, we will build a global state extension (abstracted from our current codex-editor extension), which we will likely call `crossExtensionState` that can be a dependency of any of our codex extensions:

* An extension can directly invoke the commands of another extension (see discussion [here](https://stackoverflow.com/a/50068416)), so we could call `crossExtensionState.getState` or `.setState` from another extension.
* If this fails to work as expected for some reason, we can fall back to updating a json file with project state.&#x20;
