Repository navigation
PinDeck 3.2 beta 1: sandboxed deck pages, fixes from review and user tests
Pre-release
Pre-release
The second preview of PinDeck 3.x with several decks on one port. Deck pages now run sandboxed, and it brings fixes from a code review and a round of user tests. It is on npm's beta channel; npx pindeck installs 2.10.0.
What's new since 3.1.0-beta.1
- Security: deck pages run sandboxed, so a deck's own script can no longer use PinDeck's API, read other decks or send messages. The login link's
nextstays on PinDeck. A deck's own script cannot uselocalStorageeither (it throws). - Decks are
.htmlfiles only;.htmdecks open as pages. - On a Mac, Enter in the terminal opens PinDeck in the browser, with a new login link each time.
- Several decks in one folder: a turn no longer records or undoes another deck's files, and deleting a picture keeps a file another deck uses. Subfolder decks are locked for the assistant.
- Settings: each deck keeps its provider, model and effort, and a deck that never chose one keeps the model its conversation started with.
config.jsonis merged, not overwritten, and unusable saved settings are fixed before the first message. - Many tabs on one port; a deck server that stops reconnects;
pindeck loginandcli.mjsfind the right PinDeck; a deck opens in one PinDeck only. - Editing: typing survives another program saving the deck; text that cannot be saved because the deck changed meanwhile, including a new bullet, can be copied; Enter in a bullet leaves no copied ids; the deck menu works at every window width; the model and effort menus work from the keyboard.
- Undo: New chat keeps Undo; undone changes stay marked after a restart; only the latest change offers Undo.
- Screenshots show the pins of their own message; Stop works during a screenshot; failures reach the assistant with Chrome's own reason.
- Robustness: large decks get their ids in linear time; symlinked decks; a deck that is gone while PinDeck runs; Chrome as root; a warning when PinDeck 2 writes to the same state folder; a deck page that cannot start says why, and Send no longer hangs.
- From the code review: locked paths regardless of case (macOS) and
.git/configrestored after each turn; Codex reads PDFs of a deck reached through a symlink; "not signed in" only when Claude says so; betas tested before they are staged; model lists shared between decks; a faster deck list.
Try it
npx pindeck@beta path/to/deck
Or from the v3-beta branch. Requires macOS, or Linux (beta), Node 20 or later, and Claude Code (claude auth login) or Codex (codex login). Then open the login link PinDeck prints. Settings, chats and backups stay in ~/.pindeck-v3, apart from v2.
Known limits
- A deck whose own script uses
localStorageneeds a change to run in PinDeck. - Two named decks in one folder share files such as
theme.css. With both open, Undo refuses to overwrite a file the other deck changed. - Each open deck starts its own headless Chrome when it needs one.
- The Codex integration uses OpenAI's experimental
dynamicToolsapp-server extension, so a future Codex update may need a PinDeck update. - Try the beta on a copy of your deck.
Please report problems as issues and mention "v3 beta".