How can we help?
Search every topic, or pick a place to start.
Start with a task
Browse by topic
See every topic A to Z? to find any feature by name.
Search results
No topics match. Try other words, such as "script", "field" or "template".
Every topic, A to Z
Start here
A new account starts in the Library with a sample book, Your first book. Dealer (Cmd/Ctrl + K) opens any stack, card or command, and Help is beside your account circle.
Its four cards are a title page, a page on how it works (each card is a page; In the book, Read, Export as EPUB, the Markdown editor and sharing), left out of the book itself, and two short chapters to write over. It is yours to change or delete; deleting it does not bring it back. Another copy is in Templates → Start your first book, and under Write a book on the New stack page. Accounts made before it keep the Welcome to Wyldcards stack they were given.
Every New stack (in the Library or Dealer) opens one page: name a blank stack, or under Or start from a template pick a book, screenplay, songbook, recipes or a listicle and one click creates a clean editable stack with its structure ready; Browse every template is at the bottom. Otherwise: 1. Create or open a stack. 2. Add a card for each idea, scene, song, or record. 3. Editable cards open in Edit mode, ready for fields, buttons, and widgets. Start with the Welcome overview, then see Edit Mode when you are ready to build.
Welcome to Wyldcards
Wyldcards is a HyperCard-style tool. You make a stack, fill it with cards, put fields, buttons and widgets on them, and write short scripts that say what happens when someone clicks. Think of a stack as an artisan app: small, made by hand for one job, and yours to change while you use it. A screenplay, a songbook and a cookbook are all just stacks. Across the app, solid buttons confirm or create, outlined buttons navigate or offer secondary actions, and red buttons remove something.
The Focus HUD keeps controls around your card: navigation above, New card below, and Dealer at the bottom. Editable cards open in Edit mode. Type a card name or command into Dealer, or press Cmd/Ctrl + K. The same controls work on phones, within thumb reach: Cards opens as a sheet above Dealer, and in Edit mode the controls (Add part, Tools, undo and redo, Saved) form a dock just above Dealer whose menus open upward. While Add part or Tools is open the card is dimmed; tap the dimmed card to close the menu, and that tap does nothing else. Selecting a field or part shows its formatting in a sheet above the dock, which does not dim the card, so you can keep tapping fields. The dock and the sheets all rise above the on-screen keyboard.
In Edit mode, Add part, Tools, Undo and Redo sit beside the card name. Select a part to open its Properties panel; clearing the selection gives that space back to the card. Press Escape or choose Close to close a side panel. If it holds changes you have not saved yet, such as a script, Author notes or a picture description, Escape, or a click on an empty spot of the card, keeps the panel open and says so; save them, or choose Close and confirm to discard them. Clicking a different part, choosing one from the selected-part menu, or turning on background in Tools while the panel holds unsaved changes asks the same question first. Find Comments in Dealer to open the discussion panel. Tools holds New card options, background editing, the grid, device previews and five menus. Press Escape or click outside Tools to close it. Layout switches, copies or saves the card's layout as a template. Card holds Move to stack, Move to new stack, Cards, History, Related cards, Author notes, Marked, Can't delete, Don't search, Stack cover and Delete card. Part holds Copy, Cut, Paste, Select all parts, Arrange and Components; Scripts opens the card, background and stack scripts; Stack opens Data and the stack's Trash.
Header and toolbar menus work with a keyboard too: use Up and Down Arrow to move through options, Home or End for the first or last option, and Escape to close the menu and return to its button.
Focus HUD: find a control
The card is your workspace. Its everyday controls stay close to it; Dealer finds the other views and actions by name.
Around the card
- At the topThe brand icon opens Library. Share and Settings sit beside the stack name. Change card background in Settings → Appearance.
- Above the cardCards is at the left, the card number and arrows are in the center, and Focus is at the right. Type a number and press Enter to jump; Escape cancels.
- Beside the titleBookmark marks this card. The pencil or check beside Editing / Browse changes mode. Editable cards open in Edit by default. Formatting tools appear above the paper when a part is selected.
- Below the cardNew card adds a blank card after this one. Card row (Row on or Row off, also Dealer's Show the card row) puts a small picture of every card under the card, with arrows to scroll and a + New button; the card you are on is outlined, a picture opens that card, and the choice is kept on this device. In Edit, drag a picture by its small grip, or focus the grip and press the arrow keys, to move that card; it is saved as you let go, like moving a card in the Cards panel. Continuous scroll shows On or Off; when On, previews stay read-only. Choose Edit card in Edit mode or Open card in Browse to open that card in the same mode. Browser Back restores the preview list even after opening the current card, and Forward returns to the opened card. Reloading a Continuous view reopens its previews. Temporary messages stay cleared. Saved moves and new cards refresh an open list; a hidden list refreshes when you turn it on again. Preview links follow their cards immediately while the refresh loads. If a refresh fails, the existing previews stay readable and Retry tries again. You can turn Continuous scroll off during a refresh. If the first load fails, the control stays Off and you can try again.
- At the bottomType directly into Dealer to find a card or run a command. Cmd/Ctrl + K focuses the box and results appear above it.
Make room to work
Cards opens a panel beside the paper, or a sheet above Dealer on phones; tap the dimmed card to close it. Drag cards to rearrange them, or focus a card and press Alt + ↑ or Alt + ↓. Bookmark changes the card's shared mark; Cards → Marked finds those cards for you and your collaborators. The dot, count and filtered list update when the bookmark saves. The button waits while saving, even if you leave and return with Back; a failed save keeps its previous state and lets you retry. Removing the last bookmark clears the Marked filter.
Focus above the card hides the header, Dealer and side panels while keeping card navigation and its exit button. Choose it again or press Escape to return to your previous layout. It preserves your Cards panel choice. Focus applies only to the card workspace: if you leave through browser history, Library filtering and other pages keep their own Escape behavior. Returning to the card restores its saved Focus preference. Cmd/Ctrl + K exits Focus and opens Dealer. For focused writing in a single text field, switch to Browse and use Dealer's Focus writing command.
Find the other actions
Use Dealer for Comments, History, Paint, Draw, Card overview, Text outline and Export as EPUB. Type the action's name, choose a result, then press Enter. Commands appear when you have permission to use them. The former More menu's actions are available here.
Type ? followed by a topic in Dealer for help. Press ⌘D to pin a selected command to the top of Dealer.
Stacks, Backgrounds & Cards
New card: choose New card below the card to add a blank card after the current one; it opens in Edit mode. In Edit mode, Tools → New card also offers the same layout, a copy of the current card, or a template.
Reusable design styles: open Stack Settings → Card design and choose Classic, Paper, Midnight, Postcard, or one of the three Wyldcards designs: Jungle (mint paper with jungle-green buttons), Cream (the app icon's cream with warm brown ink) and Night Canopy (deep night green with glowing mint). Classic follows the app's own look: plain, softly filled buttons and fields in your Light or Dark appearance, like the buttons in the iPhone, iPad, Mac and Android apps. The other designs coordinate the card's colors, typography, field backgrounds and control corners, and every button, field and list on the card takes the design's colors whether you use Light or Dark appearance. A sample card previews the preset before you choose Save. The saved design applies across the stack, including shared and published cards, previews and the storyboard. Explicit styles on individual parts take priority. Choose the same preset in another stack to reuse its look, or return to Classic for the default appearance. Custom CSS overrides the preset on the card; the sample preview shows only the preset.
Card background: open Settings → Appearance from the current card. Choose Paper for pure white, Warm, Sage or a custom color, preview it, then Save background. This changes only that card. Stack default removes the override and restores the stack's design and color. The color travels with card copies, backups and stack folders; history can restore an earlier color. Styled parts and custom CSS keep their own colors.
Card color: cards are white by default, in Dark mode too. To give every card in the stack the same background color, turn on Card color under Stack Settings → Card design and pick a color. It replaces the design's background everywhere the design shows, and the card's text turns dark or light so it stays readable; fields and buttons keep the design's look. Turn it off to go back to the design's own background. Custom CSS still overrides it.
Adapt cards for phones, on for every stack unless its owner turns it off in Stack Settings, makes cards flow top to bottom on screens up to 600px wide, using their original top-to-bottom, left-to-right positions as reading order. A short label drawn just above a part stays with it, so labels side by side over their boxes read label, box, label, box. It applies to browsing, public shares, and published stacks. A one-line field that is too long for the phone's width gets smaller type to fit, down to a readable size, and past that ends in an ellipsis; tap it to see or edit the whole line. Desktop layouts keep their original positions. In Edit mode, use Preview in the edit bar to check Phone, Tablet, or Desktop; previews are read-only. Close the preview to resume arranging parts. With the stack setting off, the Phone preview shows the card as designed, scaled to fit. Turn it off for a card that only works in its exact layout, such as a game board or a drawing. While reading on a phone, Show as designed above a flowing card shows its exact layout instead, and Fit to phone goes back; the browser remembers the choice for each stack. A card shown at its designed size that is much wider than the phone gets a note above it offering Read as text (or Not now); a card that already flows to fit the phone never shows it.
A stack is an ordered pile of cards. Every card sits on a background: parts placed on the background appear on every card that uses it, while parts placed on a card belong to that card alone. A background field keeps separate text per card unless you mark it shared.
In Edit mode, use Layout to apply another background to the current card or duplicate its current layout before changing it. Layouts are reusable forms for the same stack's cards. When you switch layouts, values in non-shared background fields with the same name carry over; other fields remain available when you switch back.
Browse with the arrow keys or with Prev / Next buttons of your own. The last card wraps round to the first. While you look at a card, the cards either side of it load quietly in the background, so turning to one shows it at once; typing or saving anything loads them again, so a card you turn to is never out of date.
In Edit mode, choose Card > Author notes to write private notes for the current card: research, reminders, what a chapter still needs. Notes never appear on the card, in the book, or in public shares.
A stack's Settings page has four tabs: General (name, icon, description, how the stack opens, and a link to its History), Appearance (card background, size and design; while you browse, a card is scaled to fit the window, growing up to one and a half times its drawn size in a large one unless Grow cards to fill the window is turned off, and Edit, Paint and Draw show it at its drawn size or smaller), Sharing (collaborators and teams, access passwords, the public link, publishing) and Advanced (protection). The page remembers the last tab you used for each stack, and a link to one section opens the tab that holds it. With a tab focused, use the arrow keys to switch tabs or Home/End for the first/last tab. Keyboard and mouse choices update the address, so reload and Back/Forward return to the expected section. Switching tabs keeps unsaved form text; it does not save settings. On a wide screen the tabs sit in a list down the left, each with a line saying what it holds, and the Save row stays at the foot of the window while you scroll. Open Settings to set the size of every card in the stack. Choose Classic, Widescreen, Square, or Portrait to fill in common dimensions, then adjust the width and height if you need a custom size.
Rename a stack: owners click or tap the stack's name in the header beside the brand icon — the name itself becomes the text box, with no pencil or extra buttons — or choose Rename stack in Dealer (Cmd/Ctrl + K). The current name is selected for replacement, and the box widens as you type. Press Enter, or click or tab away, to save; press Escape to keep the old name. Saving the same name changes nothing, so the stack doesn't move up your recently changed stacks. The new name shows at once in the toolbar, the page heading and the browser tab, and Undo beside the confirmation puts the old name back for a few seconds afterwards. You can also rename it in Settings.
Open Settings to choose a card design for the whole stack. The design presets apply in the editor, storyboard and shared links. You can also add supported CSS declarations to refine the background, border, text, or shadow; use declarations only, not selectors or external URLs.
In a stack's Settings, add an optional web link. Dealer then offers Open link on a card, which opens that page in a new tab.
In Edit mode, choose Card > Move to stack…, choose the other stack under To, then drag a card by its grip onto it, or use the arrow beside a card to send it to the end of the other stack. The card keeps its content; its background is copied into the destination stack. See Stacks, Backgrounds & Cards for the whole workspace.
Library
The Library is the main place to browse, search, and organize every stack you can open. Use Customize Library to change its layout, its order and where you start.
To start quickly, choose New stack in the Library, in Dealer (Cmd + K). The setup page lets you choose a name first; expand Optional details to add an icon, description, or web link before creating it.
Signing in, the Wyldcards logo, Dealer's Library command and go home in a script open the Library, where every stack is arranged. The Dealer input stays at the bottom: type there, or press Cmd + K anywhere, and its results appear above it. New accounts start with Your first book, a small sample book to write over; change it, keep it as a reference, or delete it whenever you like. The Grid, List and Columns switch at the top of All stacks changes how your stacks are drawn in one press, and is remembered for your account. The list gives each stack a row with its icon, name, card count, when it last changed, and its description, which makes a long library quicker to scan. Choose the Customize Library gear in the Library to give the page a name, make the same layout choice, or choose the order (your own, by name, or most recent first). Columns scroll horizontally; with My order selected, drag a stack left or right to arrange it.
Star keeps a stack in the Starred area at the bottom of the Library for quick access. In a custom-ordered grid, drag a stack onto the center of another stack to make a substack; drop at a tile edge to reorder instead. Once you have a stack, Trash stays visible beside your starred stacks: click it to open the Trash, or drag a stack you own onto it in List, Grid or Columns view, with any sort order. On touch screens, hold the stack briefly before dragging. Nothing asks "are you sure?": the message on the page offers Undo, and the stack waits in the Trash until you restore it or delete it for good. In all three views, drop on the Starred area to star a stack, drag a starred stack to Unstar above the Starred area to unstar it, or drag it directly onto the main grid to choose its new place; the Starred area's scrollbar stays out of the way during the drag. A group tile shows the icons of its immediate substacks. Open a stack group to browse its substacks, create another substack, and repeat as deeply as needed. Every substack keeps its own cards and order. Use Move out on a substack to promote only it one level, or Ungroup to move all immediate substacks up one level. Under Start on, pick a stack to open instead of the Library when you sign in; the Home page stays one tap away.
The Library has no folders of its own: to keep stacks together, star them or make a stack group. A stack that was filed in one of the folders the Library used to have is back at the top of your Library, with the rest of your stacks.
Type in the Filter stacks box at the top of the Library and the stacks narrow as you type, matching each stack's name, description and owner. Press Enter to open the only match, or, when several or none match, to search inside cards with Dealer: the names and text of cards and fields and your private author notes. Esc clears the box, Down Arrow moves to the first stack, and / anywhere in the Library puts you in the box. While composing with an input method, candidate keys keep your filter and focus; use a separate keypress after composition to clear the filter or move into the results.
When some of your stacks are shared with you or published, chips under the header choose which to show: All, Mine, Shared with me or Published. Open a stack and use Share or Settings → Sharing to invite people, share with a team, make a password-protected public link or publish it. A stack someone shared with you says who in the list (Shared by …) and has a Shared badge on its tile. The chip you pick stays in the page's address, so a bookmark or reload keeps it.
Above the stacks are Filter stacks, the Grid/List/Columns switch, and labeled New stack. The check, import, trash and gear icons open Select stacks, Import, Trash and Customize Library. Hover or focus an icon for its name. Account settings and stack settings use a section list on desktop and a horizontally scrolling row on phones.
Use Select stacks to choose stacks you own, then move several to the Trash at once. Choose Done selecting to clear the selection. There is one place for stacks you put aside: open Trash from the Library toolbar, Dealer, or the Starred area to Restore a stack or Delete forever, the only step that cannot be undone. Nothing leaves the Trash on its own. Stacks put in the Archive before it became part of the Trash appear under Archived stacks, with Restore. Empty Trash removes deleted stacks only and leaves archived stacks in place. Delete forever and Empty Trash ask for confirmation; Cancel leaves everything in place. A message confirms each restore or deletion. A stack with Can't delete on stays where it is, and the page says why. Shared stacks cannot be selected because only their owner can delete them.
Name, add & delete cards
While you read a card, its name is the heading above it. If you can edit the stack, you can rename the card right there while browsing: click or tap the name (a border comes up to show it is a text box) and type. In Edit mode, type directly into Card name above the editing controls. The name saves as you type and appears in card navigation, search, and card links. Leave it blank to show Untitled card. A card with nothing on it yet says This card is empty: if you can edit the stack, Start writing opens it in Edit mode, where you can click the card and start typing, and the same note points to + Field, + Button and + Widget. The note goes as soon as the card has a part, and people who can only browse never see it.
Name suggestions: when a card has no name or still has a default name such as Untitled card or Card 1, its Edit-mode name box offers Use name: “…” from the first non-empty text field on the card. Choosing it fills the name and saves as usual. An unnamed or default-named stack offers the same option when you click its toolbar name, using the current card's name or text; press Enter or leave the box to save, or Escape to cancel. On New stack and Settings, suggestions use the description and are saved with the form. Suggestions are optional and only appear when there is text to use.
In Edit mode, open Layout in the edit bar, type a Template name and choose Save this layout to save the current card's layout with a name. Saved card templates are available from Tools → New card while editing that stack. They copy the selected background, parts, and styling into a blank card; they never copy the card's title, field text, scripts, notes, or mark. Delete a saved template from the same Templates menu when it is no longer useful.
To change a card's words all at once, choose the Markdown icon in the editing tools above the paper. Opening Markdown… appears while it loads. Press Escape, choose another control or page, or start typing elsewhere to cancel that opening and keep your place. The card text stays unchanged; choose the icon again when ready. If loading fails or the card version is missing, the message explains the problem and the icon becomes available to retry. The card's name, fields, notes and scripts appear inside the card as one Markdown file. Save or Cmd/Ctrl + S writes changes and returns to the card; Cancel leaves the saved card untouched. If someone changed the card while you were editing, your draft stays visible with a conflict message so you can copy it before reopening the latest card. Browser Back and Forward keep an unsaved Markdown draft in this tab, including the card version used to check for conflicts. A save already in progress finishes once; returning to the card keeps editing disabled until it completes. A successful save returns to the card. Cancel or confirming that you want to discard changes clears the draft; reloading or closing the tab still asks before leaving unsaved text. The separate Edit as Markdown page remains available from Tools → Card, and the stack Markdown editor edits every card together.
In Edit mode, choose Delete card in the Card menu to take the current card out of the stack. Nothing asks "are you sure?": the card goes to the stack's Trash and you stay in the stack, with Undo in the message at the bottom of the page to put it straight back where it was. Later, open Stack > Trash in the edit bar to Restore a card or Delete forever, the only step that cannot be undone. Deleting cards from the card navigator or the Storyboard works the same way, with Undo in the message on the page that opens next. Restoring a version, opening an older field version, deleting an edition and deleting stacks from All stacks ask nothing either: each keeps a copy you can go back to, and the message says where. The Card trash page shows the stack name and a Back to card link that keeps your place after restoring or permanently deleting a card. Delete forever asks for confirmation; Cancel keeps the card. Only people who can edit the stack see its Trash. A stack always keeps one active card, so its last one cannot be deleted, and a card with Can't delete on stays; the page says which.
My Library: saving & backups
Library includes your stacks and stacks shared with you. Your own stacks are stored under your account on this Wyldcards site. To continue on another device, sign in to the same site with the same account. Use stack groups to organize stacks and star frequently used stacks in the Library.
Card text saves automatically as you edit. When offline, card text, changes to a card's name, mark, protection, search, or public setting, card moves, Delete card, and paint, draw and widget saves wait safely on this device; reconnect and let them finish. Creating cards and changing layouts still need a connection; trying one offline says so, and your text keeps saving. Wait for All changes saved before leaving the card. An offline or pending save is not yet saved on the server. Forms with a Save button still need that button.
Choose Export under an editable stack in All stacks to save the stack as an .epub to your device: a book you can read anywhere, with the whole stack inside it, so Import turns it back into the stack. Owners and editors can export; viewers and writers cannot. A grouped tile exports that stack only, not every stack in the group. You can keep the downloaded file in a cloud-synced folder such as Google Drive, Dropbox, or iCloud Drive; this is a manual backup, not an automatic connection to those services.
To restore, choose Import, select the backup, review the preview, and choose Create stack. This creates a new stack rather than overwriting the original. See Export & Import for what the backup contains.
Export & Import
Author cards as stack code. Write a stack as a .wyldcards.xml text file, in the Code editor or any text editor, and import it like any other file. See Code editor.
A stack's EPUB (see EPUB books) holds its backgrounds, cards, parts, scripts, author notes and field text, and its script title page. .wyldcards.json backups and .zip stack folders from before still import. Links between the stack's own cards — a linked cards field, or a song put into a scene — come back pointing at the imported copies, not the originals; links to cards in other stacks are kept as they are. Import it into another account, or keep it as a backup. Because the export carries scripts and private notes, only the owner and editors can download it; viewers and writers cannot. The iPhone, iPad and Mac apps import all three kinds of file, with the same preview and the same choices of where cards start, whether scripts come along, and Layout only. Markdown imports as editable plain text: # names the stack, ## starts a card, and ### starts a field. To import, drop the file anywhere on the Import page or on All stacks, or choose it on the Import page: the preview opens straight away. Drop several files, or a folder with subfolders, and each .epub, .wyldcards.json, .md, or .docx file in it becomes its own stack straight away, with no preview, at the top of your Library. Up to 200 files at a time; hidden files are skipped. Dropped on the Import page, they land you in the Library once they are in. A folder holding just one such file, at its top, opens that file's preview instead. A .zip of EPUBs or backups, such as the Library's Export of several stacks, previews every stack in it with its card count; Create stacks makes them all, each under its own name, filed in the folder you choose (dropped among other files, it makes them straight away). In a Word document, Heading 1–9 styles name new cards; ordinary paragraphs and table text become editable card text. Long sections break between paragraphs where possible and continuation cards are numbered. Word imports size their cards to fit the imported text. Wyldcards validates and previews its stack name, cards, backgrounds, and parts before you choose Create stack; nothing is created until you confirm, and Cancel takes you back to the Library. The preview shows the file's name and kind, counts its cards, backgrounds and parts, and lists the first cards; beside it one panel lets you rename the stack and choose Then: go back to the Library (the default), Edit the first card, or Browse it. Change file beside the file's name starts over with a different file. For Markdown and Word, New card at chooses where cards begin — for Markdown, ## (the default), # with ## as fields, every heading, or one card for the whole file; for Word, every heading (the default), Heading 1 and 2, Heading 1 only, or nowhere — and the preview updates to match; headings that don't start a card stay in the text. For Markdown and Word, Layout puts the cards onto one of the templates instead of plain text cards: the new stack takes the template's backgrounds, buttons, scripts and card size and keeps its index cards; each imported card's heading fills the title field, ### sections fill fields with the same names, and any other text goes in the template's main text field. The cards are made on the template's usual kind of card. Choose Import a file into it under a template in the gallery to start with that layout chosen. A backup with scripts shows how many it carries beside Keep scripts: untick it to import a stack from someone else without running any of its scripts until you've read and added them.
Apple Notes: bring notes in as a stack of one card per note. The note's first line names its card and the rest is its text, in a Text field; notes from more than one Notes folder also get a Folder field. Import any of these: the .zip of iCloud Notes from Apple's Data and Privacy download (or that folder unzipped and dropped on Import), a .zip or folder of notes exported from Notes as Markdown, plain text or HTML, or one note's .txt or .html file. Notes in Recently Deleted, attachments and pictures are left out. In the iPhone, iPad and Mac apps, Import Stack… takes these .txt and .html files too, and .wyldcards.xml stack code.
Obsidian vault: drop your vault's folder on the Import page (on a computer), or zip it, .obsidian settings and all, and import the .zip, to get a stack of one card per note, named for the note's file and ordered by folder, then name (Day 2 before Day 10). The stack takes the vault's folder name. Every card is on a Note background: the note's Markdown goes in a Text field, a vault with subfolders adds a Folder field (such as Projects/Work), and each simple property in the notes' front matter (text, a number, yes/no or a date) gets a field of its own, up to 20. A note's tags become its card's tags (a backup, a stack folder and an EPUB keep cards' tags too), and lists and other properties are kept in its text as lines; aliases are left out. A wikilink such as [[Basil]] or [[Basil|the basil]] reads as its words, and when the note it names is in the vault, a Links field (a linked cards field) links the card to that note's card. The first picture a note embeds (PNG, JPEG or GIF from the vault) is shown on its card; other embedded pictures and files, %% comments, .obsidian, .trash and other hidden folders are left out. A .zip of Markdown notes without an .obsidian folder is read the same way when its notes use wikilinks or front matter; otherwise it imports as notes, as above. To keep a stack and a vault in step instead, see the Obsidian plugin.
Export as Canvas (Obsidian), in Dealer (or Download canvas in Settings), downloads the stack as a .canvas file, the JSON Canvas board that Obsidian's Canvas opens: put it in your vault and open it. Each card is a box, in card order, five to a row, holding the card's name as a heading and the words you typed in its fields, the same ones the Markdown editor shows. Marked cards are green. An arrow runs from a card to each card of the stack it links to, named after the field or button that links: a linked cards field, a song put into a scene, a card link field, a button that goes to a card, or a card shortcut. It is a map of the stack's words and links, not a backup: layouts, scripts and pictures stay behind, so use Export as EPUB to keep everything. Owners and editors only.
Import a canvas: drop an Obsidian .canvas file on the Import page, or choose it there or in Dealer, and each box becomes a card on one background, Note. A text box's first line (a heading's words) names its card and the rest is its Text; a box showing a note or file of the vault becomes a card named after the file, with its path as the text; a web page box becomes a card with its address in a Link field. A coloured box becomes a marked card. Stacks have no groups, so a group's name goes in a Group field of each card inside it. Cards come group by group, and within a group top to bottom, then left to right. Each arrow becomes a link in a Links field (linked cards) on the card it starts from. A canvas exported from Wyldcards comes back with the same card names, words and links. Up to 2 MB and 2000 cards.
Import preview pictures: before anything is created, the import preview draws the first six cards of your file as they will arrive, in the layout you choose, so you can see the result before you press Create. Nothing is saved and no script in the file runs to draw them.
EPUB books
Every stack can be saved as an EPUB, the standard e-book file. One file does four jobs:
- Read it anywhere. It opens in Apple Books, Google Play Books, Kobo, Calibre or any other e-book app, with each card as a chapter. See Export as EPUB.
- Keep a backup. The whole stack travels inside the book, so Import makes it again, layouts, scripts, paint and notes included.
- Edit cards as files. Unzip it to find each card as a Markdown file, edit them, and Update from EPUB… brings the changes back. See Inside the EPUB.
- Share a book. A published stack offers its public cards as a book anyone can download, and Download picture book makes a page-per-card book for stacks that are mostly pictures. See The book's details.
Books made elsewhere import too: each chapter becomes a card of its text and pictures.
Export as EPUB, in Dealer (or Download EPUB in Settings), is the way to export a whole stack (Export as Canvas (Obsidian) exports just its words and links); Dealer's Preview book shows the book first. It downloads an .epub that is two things at once. It is a book that opens in Apple Books, Google Play Books, Kobo, Calibre, an older e-ink reader, or Kindle through Send to Kindle, with no Wyldcards needed: a title page (the cover card's picture, the stack's name, owner and description), a Cards page listing every card as a link to its chapter, then each card as a chapter under its name, which the reading app's contents list too. When a stack comes in sections — one background's cards open each section, such as a chapter card before its pages, and never follow one another — the contents nest each section's cards under the card that opens it. A chapter shows a picture of the card as it looks, then the card's words in reading order: each field under its caption or name, lists and checklists as lists, and text on the card as paragraphs, so the text resizes, searches and reads aloud in the reading app. Buttons and card links that go to another card become links to that chapter; a script cannot run in a book, so a button that only runs a script is left out. And it carries the whole stack, in a wyldcards folder inside the book that reading apps never show, so Import makes the stack again — layouts, scripts, paint, notes and all — and Update from EPUB… brings edits back. A stack's EPUB can be up to 25 MB to import. Owners and editors only.
Preview book, in Dealer, beside Export under a stack in All stacks, and beside Download EPUB in Settings, opens the stack's EPUB in the page before you download it, drawn as a reading app draws it. Previous and Next (or the ← and → keys, or a swipe on a phone) turn the pages, and the Contents menu goes to any chapter, with entries under a chapter indented beneath it. Reflowable and Picture book switch between the two kinds of book (Preview picture book in Settings opens the second), and Download saves the one you are looking at. It is the same book the download gives you, made fresh from the stack each time. Owners and editors only.
Before you publish. Above the book, Preview book lists what would make it better, each with a link to where you fix it: cards whose picture has no description (worth fixing for the picture book, where the picture is the whole page, and a tip for the reflowing book), a cover that is a blank card or a plain one because the cover card is left out, a footnote reference such as [^2] with no [^2]: line on its card, or a note nothing refers to, an ISBN with no publication date, a series number with no series name, and a book with every card left out. A description's link opens the card in Edit mode with its Picture description box beside it; a cover's or the book details' link opens the Book section of Settings. The list opens by itself while anything is worth fixing, and says Looks ready when there is nothing to look at. Preview book in Settings shows how many there are. It changes nothing; the book downloads just the same either way.
Leave a card out of the book. Every card is in the book until you say otherwise: in Edit mode, clear In the book in the edit bar's Card menu (or send inBook: false through the API) and the card gets no chapter, picture or line in the contents, the title page counts only the cards in the book, and a link to it becomes plain words. If it is the stack's cover card, the book gets a plain cover with the stack's name. A published stack's public book leaves it out as well. The card itself stays in the stack as it was, and in the wyldcards folder inside the book, so importing the book or Update from EPUB… keeps it (its card file says inBook: false). A copy of the card is left out too; merging keeps a card in the book when any of the merged cards was.
Front and back matter. Every card is a chapter of the book until you give it another role: in Edit mode, Role in book in the edit bar's Card menu makes it the book's Dedication, Epigraph, Foreword, Preface, Prologue, Epilogue, Afterword, Acknowledgments, Copyright page or About the author (or send bookRole through the API, such as "dedication"). The card stays where it is in the book: put the dedication and copyright page before your first chapter and the afterword after your last. Reading apps then know each part for what it is: a book opens at its first chapter or prologue, past the front matter, and an app's Go to menu can jump to the start, the copyright page, the dedication and so on. Front and back matter have no Card N of M line and are never tucked under a section in the contents, and a dedication or epigraph is centred on its page. A book with a copyright page leaves the rights line off its title page, since that card says them. The role travels with the card's file (bookRole:), backups, copies and the book's own wyldcards folder; a merged card takes the first card's role.
Describe a card's picture. In Edit mode, Picture description… in the edit bar's Card menu opens a box in the side panel where you say in words what the card's picture shows, up to 1000 characters (or send pictureDescription through the API). Screen readers and read-aloud give it in place of the picture, in both kinds of book, and on the title page when that card's picture is the book's cover. Without one, the reflowing book's picture says nothing, since the card's words follow it, and each picture book page is named by its card, as in Card 3: Chorus. A book whose pictures are all described says so to reading apps and stores. The description travels with the card's file (pictureDescription:), backups, copies and merges.
Audio in the book. In Edit mode, Audio… in the edit bar's Card menu opens a panel in the side where you add MP3 or M4A files to the card (up to 25 MB each), play them, rename them and remove them. In the stack's EPUB book each one is a player, named as you named it, under an Audio heading after the card's words; reading apps that play sound (Apple Books, Thorium, Google Play Books) play it there. A book carries up to 100 MB of audio, in card order; your own book, which also carries the stack for importing back, carries less so it stays within the 25 MB import, and names what it left out. Audio isn't in the picture book, and it doesn't come back when you import a book. Copying a card copies its audio. The iPhone, iPad, Mac and Android apps have the same Audio… in the card's menu, while online.
Read along. Sync a card's words to one of its audio files and the book highlights each line as it plays, the way a read-along picture book or a karaoke lyric sheet does. In the Audio… panel, press Read along… under a file, then Start, and tap Next line (or press the space bar) as each of the card's lines begins; tap once more where the reading ends. Undo takes back the last tap and rewinds a little. A line is each line of the card's text boxes that hold writing (multi-line, rich text and paragraphs fields), in reading order; titles, check boxes and other one-line fields are left out. A card reads along with one of its files; syncing another moves it there, and Stop reading along turns it off. If you change the card's words afterwards, the lines pair up in order until you sync again, and the panel says when the count no longer matches. Reading apps that play EPUB 3 media overlays (Thorium, and others that read along) highlight the words; other apps show the player as before. Read along is in the reflowing book for now, not the picture book, and syncing is on the web for now.
Footnotes. Write a footnote as in Markdown: a reference such as [^1] (or a name, [^source]) where the note belongs in a field's text, and a line of its own such as [^1]: The note's words. in any of the same card's fields. In the book each reference becomes a small raised number that opens the note in a pop-up in Apple Books, Kobo and other EPUB 3 reading apps, numbered 1, 2, 3 in the order the card first refers to them (two references to one note share its number), and the notes are listed at the end of the card's chapter, each with ↩ back to where it was referred to. The note lines themselves are left out of the chapter's text. A reference with no note line stays as it was typed, and a note nothing refers to is still listed, after the rest. On the card itself, in a plain or multiline field (with or without Show Markdown), a reference shows as the same small raised number, and the field's note lines are listed, numbered, at the end of that field; click into the field to type and it shows the footnotes as written, as Edit mode always does. The card's picture shows them the same way, so the cards pictured in a book's chapters, and the picture book's pages, have no footnote marks in them; the picture book's text over each page shows them the same way, and its notes are also with the page's words for reading aloud. What is saved is the text as you typed it, and the card's text page, its Markdown, search, scripts and its file all keep the footnotes that way.
The book's details. Set the stack's Language under Book in Stack Settings (a tag such as en, fr or pt-BR; blank is English), so reading apps read the book aloud, hyphenate it and look words up in that language. Theme, in the same place, sets how the book's words look: Classic (a book serif), Modern (a clean sans-serif), Children's (large rounded type with generous spacing) or Screenplay (Courier, like a typed script). Children's and Screenplay carry their own typefaces in the book (Nunito and Courier Prime, under the SIL Open Font License, whose text travels with them); a reader can still choose their own font and size in the reading app. Extra CSS, under the theme, is added after the theme's styles for anyone who wants more; imports, pictures from outside the book and anything that does not parse are left out. Book cover chooses the card whose picture is the book's cover (the stack's cover card unless you choose another), or upload a Cover picture of your own, a PNG or JPEG up to 5 MB, which is the cover and opens the title page in place of any card, in your book and a published stack's book alike. Subjects, Series and Number in series, Rights, Publication date and ISBN, in the same place, are what reading and library apps such as Apple Books, Calibre and Kobo sort and shelve the book by, and all are optional. Subjects are keywords separated by commas, up to 10. A series gathers its books on the shelf in order of their number (2, or 2.5 for one between), and the title page says Book 2 of the series under the book's name. The rights line (such as © 2026 Ann Writer. CC BY 4.0.) is printed small at the foot of the title page. A Subtitle goes under the book's title (the stack's name) on its title page, and reading apps that show subtitles show it. Contributors lists who else made the book, a name beside what they did: Co-author, Editor, Illustrator, Translator, Foreword by, Narrator, Photographer, Cover designer or Contributor, up to 20, in the order to credit them. Add a contributor adds a row and Remove takes one away; Add collaborators fills in everyone who can write in the stack, as Contributor, for you to give each their role before you save. Co-authors join you in the title page's byline (Ann Writer and Bo Lee) and are the book's authors in reading apps; everyone else is credited under it, a line for each role (Edited by Cy Park, Illustrated by Di Moss and Ed Ray), and reading apps and library catalogues are told what each one did. A published stack's book credits them too, though it never names you. The publication date is when the book first came out, kept apart from each edition's date. An ISBN, 10 or 13 digits with or without hyphens, is checked by its last digit, so a mistyped one is refused, and is kept as its 13-digit form. A published stack's book carries these too. The theme, extra CSS, cover card, cover picture and these details travel with the stack when it is exported and imported. Download picture book, in the same place, makes a different EPUB: a page for each card, drawn at the card's own shape just as it looks. Each field's words are real text set in the field's place on the picture, so in a reading app you can select them, search for them and zoom in on them without their blurring; the card's words are also kept in the page, in reading order, for reading aloud and screen readers. It suits stacks that are more pictures than words; its contents are in the reading app's contents menu rather than on a page. Every book tells reading apps and stores how it can be read (the whole text in reading order, with a table of contents), and exporting an unchanged stack again gives the very same book. A published stack's About page has Download as a book, and its reading page an EPUB link, for anyone to download it. That book holds only the public cards, as a visitor sees them, and names no owner. A stack with no picture of its own, and every script book, gets a plain cover with its title. The picture book keeps its pages as the cards look; the theme only sets its title page's type. A book from anywhere else imports too, from the Import page or Dealer: each chapter becomes a card of one text field, named as the book's contents name it, in reading order, with its paragraphs, lists and headings. Its pictures come too, as Image widgets under the chapter's text in the order the book shows them, each keeping the book's description of it as its alt text; a cover page (or the cover the book names) is the first card, the picture filling it. PNG, JPEG and GIF pictures are kept as they are and SVG pictures are drawn as PNGs; a picture that is missing, over 10 MB or in another format is left out, as are drawings made in the page itself, and a stack keeps at most 100 pictures. Tables come in as plain lines of text, one per row, and styling and links stay behind. Only a Wyldcards EPUB can update a stack.
What's new in each edition. Each time the stack changes, its book is a new edition, and the book's title page says which (Edition of 28 September 2026). To tell readers what changed, write a short note under What's new in Stack Settings (Sharing, Published stack): writing one makes a new edition. The book's title page shows the newest note, and a Changes page at the end of the book, also in its contents, lists the last 20, newest first; remove one there and the book stops showing it. A published stack's About page shows the latest edition's date and note, and its book's title page has Is there a newer edition?, which opens a page telling the reader whether their book is the latest and what changed since theirs, with a link to download the new one. The notes travel with the stack's EPUB, zip and JSON exports, and come back when they are imported.
Following a book in a reading app. A new edition keeps the book's identity and carries a version that reading apps compare, so it can replace the copy you have rather than sit beside it: open the new download and Apple Books on a Mac takes it in place of the old one (on an iPhone or iPad, remove the old copy from your library first). E-reader apps that read OPDS catalogs (KOReader, Thorium, Moon+ Reader, PocketBook, Marvin and others) can follow a catalog instead and see each new edition as it comes. Add /opds.xml on this site, signed in with your Wyldcards username and password, for every stack you can export (the link is under Book in Stack Settings). An account with two-step sign-in cannot sign in this way, and some apps cannot sign in at all: for them, make a private catalog address under Reading app catalog on the API tokens page and add that to the app instead, with no username or password. It is shown once, so copy it then. It lists the same books and lets the app download them and their covers, and nothing else: it cannot sign in, open a card or change anything. Anyone who has the address can download those books, so keep it private; Make a new address or Revoke stops the old one at once. A published stack's Follow in a reading app, on its About page, is the catalog of its public book, and /published/opds.xml lists every published stack's book; neither needs signing in. Every catalog also comes as OPDS 2 for the apps that read it: end its address in .json instead of .xml.
Inside the EPUB, the wyldcards folder holds the stack as card files. An .epub is a zip: unzip it (rename it to .zip first if your computer asks) to see them: stack.json with the stack's name and size, backgrounds/ with each background's layout, and cards/ with one Markdown file per card, numbered in card order (001 Verse.md). A card's file opens with a few lines between --- naming it (marked, its own parts), then each field's text under a line like <!-- field: Lyrics -->, and its author notes under <!-- notes -->. Scripts sit beside it as ._hs files and paint as .png. The folder keeps everything a backup does, so it is a good way to keep a stack in Git or edit many cards in a text editor. To bring it back as a new stack, import the .epub — or drop the unzipped book or its wyldcards folder on the Import page, where a folder holding stack.json imports as one stack. Cards come in in file-name order, and a new Markdown file you add to cards/ becomes a card: text above any field line goes into the background's first field. In the iPhone, iPad and Mac apps, Export as EPUB… in the Stack menu exports the book and brings an edited one back. It shows what would change before you choose Apply Changes, and Import Stack… takes a stack's EPUB (or an older zipped folder) as a new stack.
Update from EPUB…, in Dealer (or in Settings), brings edited card files back into the same stack instead of making a new one. Choose the unzipped book's folder (or its wyldcards folder), the .epub itself, or a .zip, and a preview lists every card file and what it will do before anything changes. Each card file remembers which card it came from and what that card said when it was exported, so a card you changed only in the files is updated, one changed only in the stack since then is kept, and one changed in both places is kept as it is with the file's version added after it as a new card named “… (from folder)”, for you to compare and settle. A new file in cards/ becomes a new card after the card before it. Deleting a file never deletes a card, and layouts, scripts, pictures and the order of existing cards are not changed this way, nor is a card date or hidden kept from before, which a card file still records. An EPUB or folder exported from a different stack is refused — import it as a new stack instead.
Markdown editor
Choose Markdown editor in Dealer (Cmd/Ctrl + K) to edit every card's name and typed fields as one Markdown document. It opens in the side panel beside the card, at that card's heading; Full page gives it a page of its own with the Cards outline (as does Cmd or Ctrl-clicking the menu item). In the panel, Preview and Apply stay in the panel, and once every change is applied the card beside it reloads to show them with the panel still open. ## Card name starts a card and ### field starts a field's text; there are no numbers or marks to type. Change a heading to rename its card, and write a ## heading anywhere to add a card there. Card headings are shaded, and a heading that matches none of the stack's cards is shaded in amber because it adds a new card. Headings are matched to cards by name, then by where they are, then by the field text they carry, so a card renamed and moved at once still finds itself; Preview shows what each heading was taken to be. Help at the end of the toolbar opens a quick reference under it: an example, how headings, new cards, to-dos and deleted sections are read, and the keys. Esc or Close puts it away.
Card, Text or Markdown. Beside Dealer at the top of a card, the Card / Text / Markdown switch chooses what takes the card's place: the card as it was designed, the card as a column of words (the same as Text only), or this editor, starting at the card you were on, for people who may edit the stack. Preview and Apply work there as in the side panel, and once every change is applied the card reloads with the editor still in its place. The choice is remembered in this browser, so the next card opens the same way; choosing Card with edits not yet previewed asks first. Markdown needs a connection, and the arrow keys move along the switch. On a phone, where the top row has no room for it, ⋯ has Text only and the Markdown editor instead.
The Cards outline beside the text lists every card: choose one to jump to it. The card you are typing in is marked, and a dot shows each card you have changed. On a phone the outline is a row above the text.
The full-page editor is a writing pane: one slim bar on top, the text on a comfortable reading width, and a count of words in the status bar. Cards in the bar puts the outline away or brings it back (the choice is remembered in this browser). Focus hides the bars and dims every line but the one you are on; Esc leaves it. Preview changes stays above the Dealer bar as you scroll.
Live card, at the top of the full-page editor, puts the card the caret is in beside the text, as people browsing it see it, with its buttons and scripts working; it moves to each card as the caret does and reloads with the page after you apply changes. Use the editor’s Dealer to search or run commands; live previews in Edit, Code and Markdown do not repeat that bar. It needs a wide window, and it is the same switch as live card in Edit mode.
The toolbar and keys format the selection: Cmd/Ctrl + B bold, Cmd/Ctrl + I italic, Cmd/Ctrl + K a link, plus List and Checklist. Pressing them again takes the formatting off. + Card adds a card after the one you are in, with the same field headings. Return continues a list, Tab indents, and Alt + ↑/↓ move lines, as in card fields.
A checklist field reads as a to-do list: - [ ] Chop onions is still to do and - [x] Soak lentils is done, struck through. Click an item's box, or press Cmd/Ctrl + Shift + Enter, to tick or untick the items at the caret or in the selection; on a line that is not a to-do yet, the same key makes it one. Any other line you type in a checklist field becomes an item still to do.
Cmd/Ctrl + Enter (or Cmd/Ctrl + S) shows Preview changes: a list of what your text would change. Apply then writes them, and each change is recorded in History. If you try to leave before previewing, Wyldcards asks first.
As you type, a line that Preview would pass over gets a wavy underline: text under a card heading before its first ###, text above the first card, a ### heading for a field the card does not have (or one already given), and an edited stack name. The status bar says why for the line you are on, or how many lines are not read; click it to go to the next one. In the Cards outline, a card with such a line says not all read.
Move a card's whole section up or down to reorder the cards, and a new card lands where you put its heading. Delete a card's section to move the card to the stack's Trash, where it can be restored. A card someone else changed while you were editing is kept, and cards they reordered meanwhile keep their order; the preview says so. Emptying the text deletes nothing.
Code editor
Open Dealer with Cmd/Ctrl + K and search for Code editor, stack code, or XML to open the editor directly.
Stack code is a .wyldcards.xml file that describes a stack as text. It is an EPUB chapter, the same XHTML the stack's EPUB book writes, so an e-reader or a browser opens it as it is: <title>My cards</title> in the <head> names the stack, and the <body> holds cards in reading order; each card is a <section class="card" epub:type="chapter"> that starts with its name in <h1>First</h1>; and each field is a <section class="part"> inside it, with its name in <h2>Notes</h2> and its text in <p>Hello</p>, which becomes editable text on that card. A blank line between paragraphs is a new <p>, and <br/> is a line break. Close each tag. Fields flow down the card, 64 pixels tall with a 12-pixel gap, or use data-x, data-y, data-width, and data-height on a part to place it. <meta name="viewport" content="width=800, height=600"/> in the <head> sets the card size (640 × 480 unless you say), as a fixed-layout e-book page does. Write & for & and < for <. Stack code makes plain text fields only, not HTML, scripts, or styling, but it reads whatever else an EPUB chapter holds as far as a card can take it: any HTML attribute (only a part's data- attributes are checked), a doctype and a <head> with styles and scripts, <div>s around cards, and in a part the words of <em>, <strong>, <a> and other text tags, lists (a line per item), tables (a line per row, cells parted by tabs), quotes, <pre> and smaller headings; pictures, figures and scripts are left out. A chapter with no sections, as most books are written, works too: each <h1> starts a card and each <h2> a field on it (words before the first are a field named Text), and Write with sections rewrites it with a section for each so you can place its fields. Stack code written the earlier ways, with a <stack name="…"> in place of <html>, or with <card> and <field> tags, still imports, and the editor offers Update to the new form to rewrite it.
The Code editor. Choose Write stack code on the Import page (or go to the Code editor). Write on the left and the chosen card is drawn on the right as you type, with a tab for each card and a table of each field's place and size; grey numbers are where a field falls by itself. Click a card, a field, or a line number in the table to jump to its line; moving the caret in the code picks its card. Card adds a card after the one you are in, Field adds a field under the caret, and Tidy indents cards and fields evenly without touching field text. White shows the code on a white page instead of the dark strip, and this browser remembers the choice. Help opens a quick reference under the toolbar: an example, each tag's attributes and what they default to, how to write & and < in text, and the editor's keys, with a link here; Close or Esc puts it away. It is in the side panel and the app's docked editor too. As you type, a list under the caret suggests the tag that fits where you are (a card inside the stack, a field inside a card) and the attributes a tag doesn't have yet, each with what it does; ↑ ↓ choose, Return or Tab takes one, Esc closes it, and Ctrl + Space opens it any time. Typing the > of a new tag adds its closing tag, and </ finishes the innermost open one. Return keeps the indent (one more inside a new stack or card, none inside field text), Tab and Shift + Tab indent and outdent lines, Cmd / Ctrl + / comments them out or back in, and Alt + ↑ / Alt + ↓ move them. With the caret on a tag, its partner is shaded; a tag with none is underlined. Press Esc then Tab to leave the editor. Cmd / Ctrl + S downloads the code and Cmd / Ctrl + Return creates the stack. A problem shows its line and what is wrong, and underlines the tag or attribute it is about; Go to line takes you there. Where the fix is plain, a button makes it (or press Cmd / Ctrl + .): Change to the attribute a misspelt one was meant to be, Use the nearest number that fits the card, Name it for a tag without a name, Rename to for a field name used twice on a card, Write & or Write < for a bare & or < in text, and Add quotes around a value. The preview keeps the last version that worked until it is fixed. Open file… loads a .wyldcards.xml file (with Undo), Download .xml saves your text, and your draft stays in this browser until you create the stack. Create stack opens the Import preview, where you name, file and create the new stack.
Edit on the preview. Drag a field to move it and drag its corner to size it; it moves on a 4-pixel grid (hold Alt for single pixels) and its <section class="part"> tag gets data-x, data-y, data-width and data-height. Fields after it on the card that had no data-y get the one they had, so they stay put. Click a field and use the arrow keys to move it a pixel (Shift: ten), or Alt with the arrow keys to size it. Double-click a field, or press Return on it, to type its text on the card: Return starts a new line, Cmd / Ctrl + Return or clicking away keeps it, and Esc drops it. Delete on a chosen field takes it, and its text, out of the code; Undo in the message puts it back. Each change is written into the code, so Cmd / Ctrl + Z in the code takes it back.
A stack as stack code. On a card of a stack you can edit, choose Code editor in Dealer to open that stack in the editor. It opens in the side panel beside the card, scrolled to that card's tag, with Code and Preview tabs; Full page gives it a page of its own, also starting at that card (as does Cmd or Ctrl-clicking the menu item). In the iPhone, iPad and Mac apps, the Code Editor is the same stack code in a native editor that works as the Markdown Editor does there: Preview lists what your edits would change and Apply writes them, with the same checks. In the Mac app, and on an iPad with room beside the card, it opens in the side column next to the card; on an iPhone (or a narrow iPad window) it opens in a sheet. In the apps, code that would not be read is named under the text with its line a moment after you stop typing (choose it to go there), and while the editor is open, changes others make come into the text when you have no edits waiting for Apply; otherwise a note says Apply will merge them. Once everything is applied the card shows the change and the code starts again from the stack. Each card and field carries a data-id that ties it to the stack; leave the data-id off for a new card, which goes where its tag is, or a new field on its card. The code holds the fields you type in; a comment on each card says what else is on it (buttons, widgets, labels), and those stay as they are. Save to stack… (or Cmd / Ctrl + Return) lists every change first, with what it was and what it becomes: card and field names, text, where fields sit, new cards and fields, the order of cards, and the stack's name. Only what you changed is written. Once every change is saved, the card beside the panel reloads to show it with the panel still open; on the full page you are back on the card you came from, and Back to card returns there without saving. A change someone else made to the same thing meanwhile is shown and left alone, and nothing you delete from the code is deleted from the stack. Moving a field that belongs to a background moves it on every card on that background. Move a card's tag up or down to reorder the cards, as in the Markdown editor; if someone reordered those cards while you were editing, their order is kept and the list says so. Card size is not changed from here. Unsaved changes stay in this browser and come back when you return, with Discard to start again from the stack. Download the code and import it to make a copy: the import leaves the ids behind. In the iPhone, iPad and Mac apps, Code Editor in the File menu (or in Commands, ⌘K) opens this editor for the open stack; it needs a connection.
Live card, at the top of the full-page editor for a stack, shows the card the caret is in as people browsing it see it, with its buttons and scripts working, in place of the Preview. It moves to each card as the caret does, and saving keeps you in the editor and loads the card again as saved. Choose it again to bring back the Preview. It needs a window wider than a phone, and it is the same switch as live card in Edit mode.
In your own text editor. To write a stack's code (or its Markdown) in VS Code, BBEdit, Vim or any other editor, use wyld, a small command-line tool that comes with the Wyldcards source (cli/wyld.mjs, Node 22 or later). Make a token under Account menu > API tokens, run wyld login and paste it, then wyld pull "Stack name" writes the stack to a .wyldcards.xml file (--markdown for a .md file). wyld push lists what your edits change and applies them after you say yes, with the same checks as Save to stack…: a change someone else made meanwhile is shown and left alone, and a copy of your version is kept in the .wyld/backups folder beside the file. wyld watch saves each time you save the file and brings changes made in Wyldcards into it as they happen; wyld edit "Stack name" pulls, opens your editor and watches. In the Mac app, the Code Editor and Markdown Editor have Edit in Other App for the same thing without a terminal: it saves the text to a file where you choose and opens it in your text editor (the one you last chose, or pick another from its menu). Each time you save there, the change is applied to the stack and the file is updated to match; a save that would move cards to the Trash, or that meets a change someone else made, waits for you to choose Apply in the app. Stop goes back to editing in the app. On an iPad or iPhone, Edit in Other App puts the file where you choose in Files (iCloud Drive, On My iPad, or another app's folder); open it from the other editor through Files, and each save there is applied the same way, within a second when the two apps are side by side, otherwise when you come back to Wyldcards. Show in Files finds the file again. In a Markdown file, removing a card's heading moves the card to the Trash, so wyld always asks first. In VS Code or Cursor, the Wyldcards extension (in the source, under integrations/vscode) does the same inside the editor: Wyldcards: Open Stack… opens a stack, each save goes to the stack, changes made in Wyldcards come into the file, and stack code that would not be read is underlined where it goes wrong as you type. A save that would move cards to the Trash, or that meets a change someone else made, waits for Push to Stack, which lists the changes first.
In Obsidian. The Wyldcards plugin for Obsidian (in the source, under integrations/obsidian) keeps a stack as a folder of notes, one per card and named for it, on a computer, iPhone, iPad or Android. Paste an API token in its settings, then run Wyldcards: Add a stack…: your edits go to the stack a moment after you stop typing, and changes made in Wyldcards come into the notes on their own. From a terminal, wyld pull "Stack name" --vault run inside a vault does the same, and wyld watch keeps the two in step as you write. A card's settings are the note's properties, and in a linked cards field or a song insert, a link to another card reads as a wikilink such as [[Dana Whitlock]], so Obsidian's links, backlinks and graph follow your cards. Renaming a note renames its card, and a new note becomes a new card at the end of the stack. A card changed in both places keeps its Wyldcards version, and yours goes in beside it as a copy named "… (from folder)". Deleting a note never deletes its card. A field of one line (text, number, date, time, checkbox, email, link or menu) is a property of the note, so Obsidian shows a date picker or a checkbox for it; the note's tags are kept with the card, both ways (Wyldcards itself no longer shows or edits tags; they travel in the card's file); and each stack's folder has a Bases file that shows its cards as a table, a table per background, and cards. With Card pictures on in the plugin's settings, a picture of each card is kept beside the notes. Send this note to a stack… in Obsidian adds any other note to a stack as a new card, and Open in Obsidian, in Dealer (on the web or in the apps), opens the card's note there. Layouts and scripts stay in Wyldcards.
From a terminal, send the file bytes to POST /api/stacks/import/preview?filename=cards.wyldcards.xml with your API token, then send the response's bundle as JSON to POST /api/stacks/import. Each import creates a new stack.
Sharing & editing together
Opening Share puts the keyboard in its first field. Use Tab and Shift + Tab to move through the link, invitation fields, actions and Help. Arrow keys keep their usual behavior inside fields and the access list. Escape closes the panel and returns to the Share button; candidate keys used by an input method leave the panel open.
In the iPhone, iPad and Mac apps, open a stack's Sharing… and choose Roles… to make a role, pick what it hides for each background and field, save it, or delete it. The Access menu there offers Writer and every role as well as Viewer and Editor, and each person shows the access they have.
Sharing a stack: its owner can use Share on a card to see Who can see it (you, the people you shared it with, and anyone reaching it through a public link or the published stack), copy the public link (or, when there is none yet, give it a password and choose Create link), see each person's access, and invite an active Wyldcards user by the email address on their account. Choose Manage sharing and passwords, or open Settings, to grant access by username or change and remove collaborators. An email invitation gives access immediately and includes a link to the stack. A viewer can browse and search the stack; a writer can also type into fields (and undo, redo and put back changes) but not change cards or the layout; an editor can edit cards, fields, and layout. For anything in between, see Roles below. Anyone who can open a card can use Comments to discuss it; comments stay inside the stack's right sidebar and are never shown on public or published links. The comments panel is collapsed until you open it, and Comments in Dealer shows or hides it; while you browse a card nobody has commented on, the panel stays out of the way so the card gets the full width. When it is open, use Close to collapse it. New comments appear automatically while the card is open, without replacing a draft you are writing. Type @username to notify that stack participant (in their Notifications, and by email unless they turned that off); the stack's owner hears about every comment. Unknown names, people without access, and yourself are not notified. Authors can delete their own comments, and the owner can moderate every comment. Collaborators see their current Shared role in the card toolbar. Collaborators can choose Leave stack from the card toolbar to remove their own access. Only the owner can change sharing, settings, or archive and delete the stack. An email invitation to someone without a Wyldcards account sends them a link, good for 14 days, to make an account and join; the owner can withdraw it from Settings while it waits. Only the owner can change scripts. On a shared stack a script runs only after the owner approves it, and each collaborator chooses whether to run the owner's scripts — see Scripts on shared stacks.
Editing together. On a shared stack, an open card hears the moment someone else saves a change to it, adds, moves, archives, restores, or deletes a card (or checks every few seconds if that connection is down). A change to a text, number, date, time, email, checkbox or dropdown field appears in that field where it is, with a brief green glow, even while you type in another field. Other changes (rich text, paragraphs, lists, links, Markdown) refresh the card if you are not in the middle of an edit; if you are, a notice offers Reload for when you are ready, so nothing you are typing is swept away. The field you are typing in is never changed under you. A field someone else is typing in has a green ring with their name above it. Every save also says which version of the field you were editing. If someone else saved that field in between and changed other words, both changes are kept: the field shows the merged text and a message says so. This works for plain, multiline, paragraphs, list and checklist fields, and for a draft sent after being offline. If you both changed the same words, your change is held back and a notice shows the two versions side by side, with the words only in one of them highlighted, and asks whether to Keep mine (save your version over theirs), Load theirs (reload the card with their version) or Edit together (write the version to keep, starting from yours, and save it). The iPhone, iPad, Mac and Android apps do the same: an open card shows changes saved on the web or another device straight away (a field you are typing into keeps your text), changes to different words are merged, and a save that changed the same words as someone else asks whether to Keep Mine, Use Theirs or edit the two together. Scripts and automations always save; an API client can opt in to the same check, and is merged the same way.
Who's here. On a stack shared with at least one person, the card toolbar shows a small circle of initials for each other person who has one of its cards open — up to four, then +N (two on a phone). Point at a circle to see who it is and what they are doing, such as “Ed Itor — editing card 3”; a green ring means they are in Edit mode or typing, and the field they are typing in carries the same ring with their name. Your card only reports you while its page is showing, and you drop off the row as soon as you close it, switch tabs, or go elsewhere (or within a minute if your connection is lost). A stack nobody else shares shows nothing and sends nothing.
Following someone. Choose a circle, then Follow: your card turns to whichever card they go to, as they go — handy for a table read, a setlist or a lesson. Go to card N jumps there once instead. A Following pill on the toolbar shows who you follow; press Stop to end it. Following also ends when you turn to another card yourself or open Edit mode, and it waits while you are typing in a field or while they step away.
Reviewing a card. While another collaborator has the card open, the comments panel says who is viewing it and, when they are typing, which field they are editing. Presence disappears shortly after they leave or lose their connection. Comments start open; their author or the stack owner can choose Resolve when the feedback is handled, or Reopen it later. Resolved comments stay on the card as its lightweight review record. A comment left on a line of a styled paragraphs field shows the line it is on (Comments on a line), and someone's private note on a line is shown to them alone.
Roles narrow viewer or writer access for a group of people — a cast who shouldn't see the casting cards, a writers' room that can read the budget but not change it. The owner opens Make a role under Collaborators in Settings (or /stack/…/roles), names the role, chooses Base access (Viewer or Writer), and chooses what it does: Hide cards on a background leaves every card on that background out; a field set to Hidden isn't drawn, found or listed; Read-only shows a field but refuses typing (for roles with Writer access). Field choices update as soon as you change Base access. Switching temporarily to Viewer and back to Writer keeps your unsaved read-only choices; choosing a different field setting replaces that draft choice. Hidden fields stay hidden, and changes apply only when you choose Save role. Back to Settings returns to Collaborators for the same card. Rules go by name, so one rule covers a field on every background and every edition that has one of that name; renaming a field, or copying a background, keeps what each role did with it. Give the role to people, invitations or teams from the same menus as viewer, writer and editor; a change to a role applies the next time its people open a card. For people with a role that hides something, the card count, going next and back, Find, the storyboard and outline, the page view and its Fountain and Final Draft files, card links and the change history all leave out what it hides. Pages that show a stack whole and can't leave things out — the card list, backups and exports, the API, and the data scripts read — are closed to them. Someone in two teams sharing the same stack gets the broader access: more access first, then no role over a role. A role that is still given to someone can't be deleted, so nobody ends up seeing more than it let them.
Teams, a tab in Account settings, are groups of people who share stacks together — a production's cast and crew, a band, a class. Make a team and you manage it: add people by username, or by email (someone whose email belongs to an account is added straight away; anyone else gets an invitation link that lets them make an account and join), make someone else a manager, remove people, rename or delete the team. Everyone can see who is in their teams and the stacks shared with them, and can leave. A stack's owner shares it with a team they belong to from the stack's Settings, as viewer, writer or editor, or one of the stack's roles: everyone in the team gets it, people who join later get it, and people who leave lose it. Access that comes through a team shows as "through the team" under People with access and is changed on the team, not per person; access given to someone directly stays theirs even if a team share ends, and someone in two teams that share a stack gets the better of the two roles. Help in the account menu searches every Help Center topic by name, a related word or its text — best matches first, close spellings too — shows the topics you opened most recently before you type, and reads each topic in the app with a link to it in the Help Center. API Tokens… in the account menu lists the tokens that connect the wyld tool or your own scripts, with when each was made and last used: Revoke a token there. The app's own sign-in isn't one of them, so revoking can't sign you out. Tokens are created on the web, signed in with your password or a passkey — the server won't mint a token for another token's session.
Settings can also add a password for signed-in collaborators, create a password-protected public link, or publish a stack at a permanent public URL. The Sharing tab opens with Who can see this stack and a comparison of the two public ways: a public link reaches only people you give the link and its password; a published stack is open to anyone with its address and can be embedded. Copy link beside the public link copies its full address. Revoking the public link, unpublishing, removing a person or team and withdrawing an invitation each ask first, since they cut off access straight away. Cards are private by default: editors switch to Browse and choose Make public in Dealer to open its public settings, explain where the card will appear, and include it in public links and published stacks. Choose Public to remove it again. A card hidden with Hide card, which Wyldcards no longer has, shows to you and your collaborators like any other but stays out of public links, published stacks and their book until you make it public again. Public views only navigate among public cards, with ← and → or a swipe as well as the card arrows. Share copies only the link, so send its password separately. The link field shows the complete address for manual copying too. Copy link shows Copying… while waiting and Copied only after success. If your browser blocks copying, select the link and press Cmd/Ctrl + C, or try Copy link again. Copy feedback clears when you leave and return. Published stacks are read-only and visible to anyone with the URL; unpublish them any time. Scripts for visitors: on a published stack and on a public link, scripts are off — scripted buttons and widgets stand still — until the owner chooses Let visitors run scripts in Settings under Published stack. From then on visitors run the scripts the owner has approved, and a script that arrives any other way (a card moved in, a restored snapshot) waits for the owner's review, as on a shared stack. Scripts run for visitors in a sandbox: the page cannot read a visitor's account or cookies, cannot save to the stack, and cannot talk to any server, so wyldcards.go, setField, show/hide, background noise and widgets work, while anything that asks the server (the data API, new cards, Find across the stack) does nothing. What a visitor types lasts until they leave the card; unlocked fields can be typed in so a script has something to read. Choose Stop running scripts for visitors to switch it off again. Embedding and link previews: once a stack is published, Settings shows an Embed on another site box with the iframe code to paste: choose the card it starts on, and whether the stack's name and card arrows sit above the card, then Copy embed code; Preview shows the frame as a visitor will see it. The framed card keeps its arrows and an Open link and drops the rest of the toolbar (add ?embed to any published card address for the same view, or ?embed=card for the card alone). The frame fills the column it is pasted into, up to the card's own size, and shrinks the card to fit a narrow page; buttons and card links inside it stay in the frame. Sites that support oEmbed build the same frame from the published link alone, and a published link pasted into a chat or a post shows the stack's name and its description — or the card's first words. Password-protected public links and the editor cannot be embedded. The owner can revoke the link at any time.
Publishing readiness: owners choose Review publishing readiness in Settings under Published stack (also linked under Public read-only link). The review lists every public card, counts excluded private and archived cards, checks configured internal links and uploaded images, and explains media that the public reader omits. Choose a card to preview it, then switch between Desktop and Phone · 390px. The private preview uses the published reader with scripts off (even when visitors run them) and the stack's current phone-layout setting; opening it does not publish anything. It previews read-only publishing. Follow an issue's card link to fix it and choose Run checks again. External sites and links in scripts or rich text are not checked. Continue to publishing settings when ready. Published pages show live changes and can be indexed by search engines; hidden parts are not a privacy boundary. In the iPhone, iPad and Mac apps, choose Check Before Publishing… in the Share sheet's Publish section for the same public card list, left-out count and checks; tap a card or an issue to go to that card. The apps have no reader preview.
Notifications
When someone mentions you in a comment, comments on a card in a stack you own, shares a stack with you, adds you to a team, or changes a stack you follow, it shows up in Notifications. To follow a stack you can type in, choose Notify me of changes in the card's stack menu (the stack's name at the top); Stop notifying me in the same place stops it. Someone else's change then leaves one notification for that stack, saying who changed which field on which card; later changes update it until you read it, so a busy afternoon is one notice, and your own typing never counts. The iPhone, iPad and Mac apps' Notify Me of Changes does the same on the device. A small dot on your account circle means something is unread; open the account menu to see how many and choose Notifications (Dealer finds it too). Choose a notification to go to the card, stack or team it is about, which also marks it read. Mark read and Mark unread change one; Mark all read clears the dot.
Every notification appears in the list. In Account settings → Notifications, choose for each kind whether it also sends an Email, a Push notification to your devices, both, or stays In Wyldcards only. Mentions, shared stacks and team invitations email you unless you change them; comments and changes to stacks you follow start in the list only.
To get push notifications, open Notifications on each device and press Allow notifications on this device; your browser asks for permission only then. Press it again (Turn off notifications on this device) to stop. On iPhone and iPad, add Wyldcards to your Home Screen first. Choosing a push notification opens what it is about.
In the iPhone, iPad and Mac apps, the bell in the Stacks toolbar (iPhone and iPad) or the window toolbar (Mac), or Go ▸ Notifications…, lists the same mentions, comments, shares and teams; tap one to open it. The app checks every ten minutes while it is open and can show new ones as notifications on the device. The list still reads offline. In the iPhone, iPad and Mac apps, Delivery… in Notifications sets the same choices for each kind.
Editions
Owners can switch between History, Compare versions and Editions in the top row. Choose New edition to reach the copy form. Each edition shows its Default, Published and Current edition status; expand Manage edition to rename it, change the default, publish or move it to Trash. These actions keep you on the edition and card you came from; deleting that edition returns you to the original. Back to card resumes your work.
Editions are parallel copies of a stack — a script's blue draft beside its white one, a cut for the table read. The stack's owner chooses Editions in Dealer, or New or manage editions… from the Edition menu beside the stack's name once there is more than one (or opens /stack/…/editions) to make one from the edition they are in: it copies every card and field, so changes to it don't touch the others (images and links between its cards are not copied). People with edit access, directly or through a team, can reach every edition and switch between them from the Edition menu; only the original is listed among your stacks. Make default picks the edition people with edit access open. Publish to viewers picks the one people with view-only access see — they see no other, and when nothing is published they see the default. Editions can be renamed and deleted; the original stays. Sharing a stack puts every edition's scripts under review, and choosing to run a stack's scripts covers its editions.
Published stacks
Every published stack also has a page of its own at /published/your-stack/about, linked as About on its cards: its cover card, description and first cards, with a button in. Links to it, and to any published card, show a picture of the card in chats and posts. See Stack Previews.
Visitors turn a published stack's cards (and a password-protected public link's) with ← and →, or by swiping left and right on a phone, tablet or trackpad, as in your own stacks; the last card wraps round to the first. It works inside an embedded frame too. A published card without scripts still runs none of its own: the page allows only these two small Wyldcards files. Where you let visitors run scripts, swipes reach them as swipeLeft and swipeRight, and a handler that halts one keeps the card from turning.
Cards on a published card (or All cards on its About page) opens /published/your-stack/cards: a picture of every public card, each opening that card. From there, Read (also Read as text on the About page, and Whole stack on a card's text page) opens /published/your-stack/read: every public card's words on one light page, with contents at the top and links between cards that stay on the page. Private cards never appear. Search engines find published stacks through the site's /sitemap.xml, which lists each stack's pages and up to 80 of its cards; shares with a password, the editor and the API stay out of search.
Field rules
In a field's inspector, choose its style: text, rich text, number, date, time, email, link, checkbox, list, checklist, or dropdown. Mark a field Required to reject blank values. A non-shared background field can also be Unique across cards, so no two records in that stack can use the same value. These rules are enforced for browser edits, imports, and API writes.
Linked cards fields
Finding linked cards: focus a Linked cards field's search box to browse suggestions, or type a card name. When several stacks are available, the menu above the search box lets you search one stack or All available stacks. This only filters the picker; it keeps existing links and respects the inspector's Link cards from setting. Use ↑/↓ to browse suggestions (or reopen them), Enter to link the selected card, and Esc to close suggestions. The result count and search errors appear below the picker. Tab to a chip's × button and press Enter to unlink with the keyboard.
Structured relationships: name a Linked cards field for what it connects — Location or Cast. In its inspector, set Relationship to One card for a scene's location, or Multiple cards for a scene's cast. Existing fields start with Multiple cards. In the web picker, choosing a new card for a One card field replaces its previous link in one save. The server rejects saves containing several targets, including API and script saves. If any card already holds several links in that field, reduce them to at most one each before switching to One card; changing the setting never discards links. Required rejects blank saves, so a required relationship can be replaced but not cleared. If a web save fails, the previous links return. The same target can be linked from several source cards, and its Linked from list shows them.
A Linked cards field links as many cards as you like, from any stack you can open — a scene's cast from a Characters stack, a chapter's places from a Settings stack. Type in its box to find a card by name (↑/↓ and Enter to link it) and choose × on a chip to unlink one; a chip opens its card. In the inspector, Link cards from keeps the search to one stack. Every linked card lists the cards that link to it under Linked from, grouped by stack and field, so a character's card shows every scene it is in. You see a linked card's name only if you can open its stack; otherwise the chip says it is a card you can't open, and a card that links from a stack you can't open is left out of Linked from. The iPhone, iPad and Mac apps link, unlink and open linked cards and show Linked from too, and their inspector sets Link cards from and one card or many. The field stores the linked cards' ids, one per line, which is what the API and field(name) see; links do not travel in an exported stack.
Styled paragraphs
A Styled paragraphs field holds text made of paragraphs, each drawn in one of the styles the field defines — a screenplay's scene headings, characters and dialogue, a song's sections and lyrics, meeting notes' headings and action items. Choose it as the field's Style, then pick a preset (Screenplay, Stage play, Song, Interview or podcast, Meeting notes, Outline) or write your own styles, one per line: character: Character | caps | indent 20 | enter dialogue | starts @ | suggest. A style can be default, caps, bold, italic or underline; align it center or right; indent and right set its margins in characters and space the blank lines above it; enter names the style Return starts next, tab the one Tab switches to and back the one Shift+Tab switches to; starts lists opening words (or a symbol such as @) that switch a paragraph to it as you type — a line of nothing but one repeated symbol, such as ===, switches when you press Return — and ends closing words (such as TO:) that switch it when you press Return, a closing symbol such as < or ^ taken off; key T gives the style a letter, so ⌘⌥T (Ctrl+Alt+T) sets a paragraph in it, as the Screenplay app's element shortcuts do, while ⌘⌥1–9 always pick by place; opens lists opening words, in their capitals, that switch a paragraph of the default style when you press Return (_ is a space inside one: opens ANGLE_ON POV), and cue switches a short ALL-CAPS line of the default style — up to five words, an extension such as (V.O.) allowed, no closing full stop — when you press Return, the way the Screenplay apps turn a typed name into a character; parens draws it in brackets; suggest offers the style's earlier paragraphs from this field on every card — and on a scene heading, a step at a time, INT. or EXT., then the script's locations, then after - a time of day (DAY, NIGHT, CONTINUOUS and the script's own); keep with next keeps it off the foot of a page, unbreakable keeps it whole on one page, and continued character ends a page that breaks inside it with (MORE) and starts the next by repeating the last Character paragraph with (CONT'D). highlight yellow (or green, blue, red or gray) draws the style's paragraphs under a marker pen, a line to come back to; printed pages and downloaded files leave the highlight off. as dialogue says which screenplay element the style is in Fountain and Final Draft files (scene, action, character, parenthetical, dialogue, transition, shot, lyrics, centered, section, synopsis, note, dual — the second speaker's cue in dual dialogue — or pagebreak, a paragraph that prints nothing and starts a new page in Pages, the PDF and Word); a style without it is the element its key names, and action otherwise. The picker above the text shows and changes the current paragraph's style. The field stores one paragraph per line with its style in front, like [scene] INT. KITCHEN - NIGHT, so search, the API and scripts all see plain text; outlines, prints and search results show the words alone. In the iPhone, iPad and Mac apps, choose Styled Paragraphs as the field type in the inspector, then Start from a Preset or edit the style lines and choose Save Styles. As you type a paragraph in a style that suggests, such as a character, the apps offer the earlier ones that start the same way, from every card, under the paragraph; tap one to fill it in.
☆ Mark, in the paragraph bar, marks the line the caret is in, as the Screenplay apps mark a line: a bookmark or a pin (drawn at the line's end while you write), a highlight in yellow, green, blue, red or gray, tags (words of your own, like #vfx), and the line's own bold, italic, underline (⌘B, ⌘I, ⌘U; Ctrl on Windows), alignment or typeface — sans serif or serif instead of the field's own. In the PDF a sans line is set in Helvetica and a serif one in Times, still breaking where the typewriter lines break, and a line too wide for that face stays in Courier. Pick a ticked entry again to take it off; Clear marks takes them all. With several lines selected, a mark goes on every one of them and tags typed are added to each. ⌘D duplicates a line below itself, marks and all, and ⌘⇧⌫ deletes it (Ctrl on Windows). Bold, italic, underline, alignment and typeface print — in Pages, the PDF, Word, EPUB, Fountain and Final Draft; highlights show on the card and in Read; bookmarks, pins and tags are for finding your way and never print. Search finds a line by its tags. The marks are kept at the end of the line's stored text, [action] Rain. ⟦bookmark yellow #vfx⟧, so an app too old to know them shows those words rather than losing anything; the iPhone, iPad and Mac app draws and sets them too, tags included (Mark in the paragraph's menu). A line only marked is never listed among a field's deleted lines.
💬 Comments on a line, as the Screenplay app comments on an element: put the caret in a line and choose 💬 in the paragraph bar (in the Screenplay template, also ⋯ Tools → Comments…), and the line's thread opens under it; a small count beside a line says how many comments it has. On a line you can't type in, point at it and choose 💬 +. Press ⌘/Ctrl + Enter to post and Esc to close. Anyone who can open the card can comment, so a director or producer can leave notes on a script they can only read. Shared is seen by everyone who can read the card; a Private note is yours alone — it isn't counted beside the line, and nobody else is sent it. The picker remembers your last choice, and on your own comment Shared or 🔒 Private switches it; only its author can, though the stack's owner may delete any comment. A comment keeps the line's place and words, so it follows the line when lines are added or moved above it, and stays near it when it is rewritten (the thread shows the words it was left on). The field's text never changes, so comments are not in exports, the Markdown editor or copies of the card. Line comments also appear in the card's Comments panel with the line they are on, where they can be resolved; @username notifies a collaborator. If a comment can't be sent, your words stay in the box and it says so. In the iPhone, iPad and Mac apps, a line with comments shows a count beside it: tap it, choose Comments on Line… in the line's menu, or long-press (right-click on the Mac) a line you can't type in. On Android, tap a line of a styled paragraphs field to open its thread.
Insert song…, in a styled paragraphs field's paragraph bar, puts another card's paragraphs into this field by reference — a song from your songbook into the scene where it's sung. Find the card by name (in any stack you can open), and it goes in after the paragraph you were in, drawn as a marked block under “♪ From” the song's name. It isn't a copy: the block shows the song as it reads now, so a change to the song shows in every script it was put into, on the card, in Pages, in the PDF and in every file downloaded from there. It takes the lyrics only (each line in this field's lyrics style, a blank line between sections), or everything with Everything, not only the lyrics ticked. Edit the song on its own card — click its name — rather than in the block; to take it out, press Backspace (or Delete) beside it once to mark it and again to remove it. A song shows only while the owner of the stack it was put into can open it; otherwise the block says it isn't available and pages and files leave it out. In the iPhone, iPad and Mac apps, inserts show in place under “From” the card's name. Insert Song… in a paragraph's style menu finds a card by name and puts it in after that paragraph, and the insert's minus button takes it out. The pencil button on an insert, Edit Song, changes the song itself (its own field), and the change shows wherever it is inserted.
Versions, in the same bar, keeps named versions of the field — a song's demo, its radio edit, the arrangement for act two. The field on the card is always the version being worked on: Save version keeps it under a name, Open puts a saved version back into the field (keeping what was there as a version first), and Publish chooses the version that every place the song is inserted shows, so a new draft stays out of the scripts until it's ready; with nothing published they show the field as it stands. The Versions page also lists every field the song is inserted into that you can open. On the web, Save version in the header jumps to the save form. Manage version reveals Rename and Delete version; deleting asks for confirmation, and Cancel keeps the saved version. Back to card resumes editing the field. Viewers see the saved versions without editing controls. In the iPhone, iPad and Mac apps, long-press (or right-click) a styled paragraphs field and choose Versions… (or use Versions… in its inspector in Edit) to save, preview, open, publish, rename and delete versions.
Focus, Read & writing tools
Focus writing, in Dealer (or ⌘⌥F, Ctrl+Alt+F on Windows), puts one of the card's writing fields — the one you last typed in, else its styled paragraphs field, else the multiline or rich text field with the most words — alone on the screen, however small its box on the card: everything else steps back, the text sits in one comfortable column, the paragraph you are writing stays bright while the rest dim (in styled paragraphs and rich text), and the page keeps the line you are writing near the middle of the window as you type, like a typewriter. Aa in the bar sets how writing looks in focus without touching the card's design: the typeface (the card's own, serif, sans, mono or typewriter), the size, line spacing, a narrow, medium or wide column, and the page — paper, sepia, night, or following your system. These are remembered in this browser for every field. The bar at the foot counts the words on the card and how many this sitting has added (or taken away); its paragraph bar fades until you point at it. Esc, Leave focus or the shortcut again leaves. Focus is remembered in this browser, so going to the next card stays in it. Focus in the iPhone, iPad and Mac apps takes the same field. Focus writing is separate from the workspace Focus button above the card, which hides surrounding chrome while keeping the full card layout and navigation intact.
Cards only, in Dealer (or ⌘⌥., Ctrl+Alt+. on Windows), hides everything but the cards: the header, the toolbar, the card name, the side panels and, on a phone, the top bar and tabs. The card grows to fill the window and keeps its design; fields still save, buttons still run, and the arrow keys or a swipe still turn cards. It is remembered in this browser, so the next card opens the same way. Esc, the faint Show all button in the bottom corner, or the shortcut again brings everything back. In the iPhone, iPad and Mac apps this is View ▸ Cards Only (⌥⌘.), remembered on the device, and Text only is the Text side of the Card / Text / Markdown switch over the card (View ▸ As Text, ⌘2).
Read, in Dealer, opens the whole script on its Text tab; the tabs at the top, Cards, Text and Pages, keep the field, the marked-cards choice and your place as you switch: the line at the top of one is at the top of the other, and changing the paper, margins or zoom in Pages keeps it there too. Text is one quiet, read-only page: every card's styled paragraphs field in order, with its title page at the top and songs inserted by reference filled in, and no pages — the text reflows to the screen, and on a phone the indents narrow so dialogue still fits. Scenes lists every scene heading to jump to; A− and A+ change the text size, and you can choose a typewriter or book typeface and a light, sepia or dark page, all remembered in this browser. It is a plain article, so Safari Reader and other reading modes take it as it is, and Print prints just the script. In the iPhone, iPad and Mac apps, Pages in Read shows the script as numbered pages laid out as the PDF is. Page Setup chooses the paper, margins, page numbers, a new page for each card, the title page, marked cards only and the field. Print prints those pages, and Share sends the PDF.
Stats, Dialogue tuner and Find and replace share tabs beneath the heading. The heading shows the field and whether you are working with all cards or marked cards. Use Pages or Back to card at the top to return with the same field, marked-card choice and originating card.
Spelling, a box in a styled paragraphs field's paragraph bar, marks misspellings with a wavy red line using an English dictionary that also knows your script: every word of its character names and scene headings, the screenplay words INT., EXT., V.O., POV and the like, and the words people have added to the stack. Added words can use any writing system and hyphens. Click a marked word for suggestions, Add … to this stack's words (for anyone who can type in the stack; everyone writing in it and its editions then has it), or Ignore here for now. Untick the box to go back to the browser's own spelling; the choice is remembered in this browser. It needs a current browser (Chrome, Edge, Safari 17.2 or Firefox 140 or later); older ones keep their own spelling. In the iPhone, iPad and Mac apps, misspellings in a styled paragraphs field get a dotted red line, checked against the system's English dictionary and the same stack words and names; while you write a paragraph, its style menu lists them under Spelling with suggestions, Add … to This Stack's Words and Ignore Here for Now, and Mark Misspellings turns the marks off on that device. Offline, the apps leave spelling to the system.
Stats, in the Pages toolbar, counts the field: pages and screen time (a page is about a minute), scenes with their lengths in eighths of a page and the page each starts on, interior and exterior, day and night, how many words are spoken and how many are action, who speaks — speeches, words, scenes and their share of the dialogue, with extensions like (V.O.) folded into the name — and where it happens, with each location's scenes and pages. It counts by what each style is, so an interview's speakers and a stage play's lines count the same way. In the iPhone, iPad and Mac apps, Stats in the Pages toolbar shows the same counts: at a glance, who speaks, the scenes, and where it happens.
Find and replace, in the same toolbar, works across every card (or the marked ones) in the styles you tick — by default all but the character cues, so renaming someone in the action and dialogue leaves the names above their lines alone until you tick those too. Find lists every place with the words around it before anything changes; The replacement action sits beside the result count. Changing the words, styles or match options disables that action until you choose Find again. Replace all then changes the cards you may type into, each as one change in Changes that you can put back. Words are found as typed, optionally as whole words and in the same case, and Keep capitals gives the replacement the found word's capitals. Songs inserted by reference are left alone. In the iPhone, iPad and Mac apps, Find and Replace… in Read's Pages tab does the same: choose the styles, look at each place, then Replace All.
Pages, title page & downloads
Pages, the second tab in Read, sets out the styled paragraphs field from every card, in card order, as real-size pages in 12-point lines: a script kept one scene per card reads as one script. Choose US Letter or A4, standard, narrow or wide margins, where page numbers go (page 1 goes unnumbered unless you ask), a new page for each card, whether to start with the title page, marked cards only, and the zoom; the settings are remembered in this browser. The pages break the way the styles say — a scene heading or character never ends a page, dialogue splits with (MORE) and (CONT'D) — and Print prints exactly those pages. Download… offers the field as files. PDF downloads the script as a PDF made by Wyldcards, laid out by the same rules with the settings you chose and set in Courier on an exact typewriter grid (so a line that just fits can break a word differently from the screen) (a character Courier can't show, such as Japanese or emoji, prints as a question mark); print from your browser instead for another font or alphabet. Double-click a paragraph to open its card. With more than one styled paragraphs field, pick which one to lay out.
Title page…, in the Pages toolbar for anyone who can edit the stack, sets the script's title page: the title, a credit such as Written by, the authors, a source such as Based on the novel by…, the draft date (Draft name… puts one of the usual ones — White Draft, Blue, Pink, Yellow, Green, Goldenrod, Buff or Salmon Revision, Shooting Script — on its first line), contact details and notes such as a copyright or registration. The title, credit and authors sit centred a third of the way down, the contact at the foot on the left, and the draft date and notes at the foot on the right. The title page comes before page 1, unnumbered and not counted, on screen, in print and in the PDF (turn off Title page to leave it out). With no title page saved, the stack's name is the title. Each edition keeps its own title page, starting as a copy of the one it was made from, so a blue draft can carry its own date.
The rest of Download… writes the field — every card's, or the marked cards' — with its title page: Word (.docx), where each of the field's styles is a Word paragraph style of the same name with its indents, spacing and keep-together options, on the paper, margins and page numbers set in the toolbar (Word breaks the pages itself, so there is no (MORE) or (CONT'D)); Plain text (.txt), typed out as it prints with a page-break character between pages; EPUB for e-readers, one chapter per card named for the card; Fountain, the plain-text screenplay format; and Final Draft (.fdx) for Final Draft, WriterDuet, Highland and most screenwriting apps. Import… reads a Fountain (.fountain, .txt), Final Draft (.fdx), PDF, Word (.docx) or EPUB file into the field — by what the file holds, whatever it is named: either onto a new card for each scene after the last card (filling the last card first if its field is empty, and naming each card for its scene heading), which needs edit access, or onto the card you came from, replacing its text. Each element lands in the field's style for it, so a song or interview field can take a screenplay too. A PDF script is read by where each line starts on the page — dialogue, parentheticals, character names and transitions at their usual indents — with page numbers dropped and a speech broken by (MORE) and (CONT'D) joined back up; a scanned PDF holds pictures of pages rather than text and can't be read. A Word paragraph keeps a style named for a screenplay element, or for one of the field's styles (so Wyldcards' own Word and EPUB files come back exactly), and is otherwise read by its indent; save old .doc files as .docx first. A score's first part is read for its lyrics: syllables joined into words, lines ending where the score marks them, and words above the staff as sections. Title pages (every part of a Fountain one; a Final Draft, Word or PDF one by where its lines sit) become the stack's title page when a whole script is imported onto new cards and the stack has none yet; notes, sections, lyrics and centered text are read; boneyard text and scene numbers are left out; a page break (Fountain ===, Final Draft's new page) comes in as a Page break paragraph when the field has that style; dual dialogue (Fountain NAME ^, Final Draft's DualDialogue) comes in as one speech after the other, the second cue in the field's Dual dialogue style when it has one, and goes back out as dual dialogue.
API and card files
AI Home controls: follow the wyldcards:home link from /api. Send PATCH /api/home with just the preferences to change, such as {"title":"AI desk"}; omitted or null title, layout and sortBy stay unchanged. Set startStackUid to a stack UID to choose your start stack, or explicitly to null to clear it. These controls return the updated Home state and discoverable links, and use the signed-in or token account's permissions.
Connect the wyld command line tool or your own script without sharing your password. Open Account settings from the user menu, choose the API tokens tab, create a token named after the tool, and copy it; it is shown only once. Paste it into the tool with your site URL. Give each tool its own token and revoke it when you stop using that tool; Revoke asks first, because anything still using the token stops working.
A request with an API token uses that token's account, even if the browser is signed in to a different account. Missing, invalid, or revoked bearer credentials and tokens belonging to disabled or locked accounts are rejected before processing the request; they do not fall back to browser sign-in. Browser requests still require CSRF protection; token-authenticated requests are exempt only after the token and account have been verified. Accounts using a temporary password must replace it or register a passkey before accessing the workspace, including through API clients.
Claude and other AI assistants: Wyldcards is also an MCP server, so Claude can read your stacks when you ask. In Claude, add a custom connector with the address https://wyld.cards/mcp (your own site's address followed by /mcp), then choose Connect: Wyldcards asks you to sign in if you aren't, and shows what Claude will be able to do before you choose Allow. The connector only reads: it lists your stacks and the stacks shared with you, reads a stack's cards and their field text, and searches your stacks. It can't create, edit or delete anything, run scripts or change sharing, and its key works for the connector alone, not the rest of the API. Each app you allow is listed under Connected apps on the API tokens page, where Disconnect stops it at once. A client that takes a header instead of signing in, such as Claude Code, can send an API token to /mcp the same way.
To call the API, send Authorization: Bearer <token> to /api with Accept: application/hal+json. One request to /api/stacks/{uid}/cards can create a card with its name and field values; every value is validated before the card is created. Stack, card and part scripts appear in API responses only for people who can edit the stack. Read the API guide for setup and examples.
A card as a file: GET /api/cards/{id}/file answers a card as the same Markdown file Export writes for it — its name and settings between --- lines, then each field's text under a line like <!-- field: Lyrics --> and its author notes under <!-- notes -->. Edit it in any text editor and PUT it back to change the card's name, marked, can't delete, don't search, notes and field text; a field left out stays as it is, and layout and scripts are not changed this way. Every field is checked before anything is saved. Send the ETag from the GET as If-Match, and if the card changed in the meantime the PUT answers 412 with the card as it now stands instead of overwriting it. Owners and editors only.
iPhone, iPad & Mac apps
The native Wyldcards app for iPhone, iPad, and Mac signs in to your Wyldcards site with your username and password, then stays signed in with a session key of its own, so your password is not stored on the device. The account menu (your name in the toolbar) says who you're signed in as and on which site; on a Mac, Settings › Account does. Sign In with a Passkey uses a passkey instead of a password — Face ID, Touch ID, iCloud Keychain, or a passkey on a nearby phone — and signs in to the same kind of session. To add one, choose your account name in the toolbar and then Passkeys… and Add a Passkey for This Device; it's named after the device and appears in your account's passkeys on the web too. The same list shows every passkey on the account with when it was made and last used, and each one's menu has Rename… and Remove… — a removed passkey can no longer sign in, though it stays in your password manager until you delete it there. Passkeys work with the app when your server is wyld.cards. Sign Out ends that session on the server, and resetting your password signs the app out. On the sign-in screen, Forgot Password? emails a reset link: paste the link from the email into the app to choose a new password. Create Account makes a new account on that server straight away, with a generated username and password and a starter stack; save the password when the app shows it, because it is shown only once. On wyld.cards the app offers to save it in Passwords (iCloud Keychain) straight away, under the same login the website uses; if you choose Not Now, Save in Passwords offers again. Stacks are listed in the same order as your Library, with the ones you star in a Starred section above Other Stacks (the same stars as in the web's Library); as in the web's Library, Filter stacks, the Grid / List switch, and All, Mine, Shared with Me and Published at the top narrow the list by name, description or edition (Return opens a single match or searches inside cards with Dealer, and Escape clears); swipe right on a stack to Star or Unstar it, or touch and hold (or right-click) it to Star, Unstar, Save as File…, or move it to the trash. Save as File… (on a Mac also File > Save Stack as File…, Shift + Command + S) saves the stack as a .wyldcards file, a full backup, as the website's EPUB carries: the Finder shows it as a Wyldcards Stack, and opening it (double-click it, or drop it on the app's icon) opens that stack again, on a Mac in a window of its own, as long as it is still in your stack list on the same site. A stack from someone else, or of a stack you have since deleted, shows its import preview instead, and the website's Import takes these files too. Import Stack… in the Stacks toolbar's + menu always makes a new stack: it reads a stack's .epub, a .wyldcards stack file or .wyldcards.json backup, a Markdown .md copy, a Word .docx document, plain text or HTML (how Apple Notes exports a note), or .wyldcards.xml stack code, as the web's Import page does, and shows how many cards, backgrounds and parts it will make; nothing is created until you choose Create Stack. Group With in a stack's menu puts it inside another of your stacks (on an iPad or a Mac you can also drop one stack onto another), and grouped stacks appear inside their folder stack; use Move Out of Group from the same menu to take one out. Customize Library sets the list's title (Library unless you name it), how stacks are sorted, and which stack opens when you sign in. Outside the app, add the My Stacks widget to the Home Screen (on a Mac, to the desktop or Notification Center) — it shows your pinned stacks first, then the rest, as the app last saw them, and a tap opens one (the small size opens the first); or use the Open a Stack action in Shortcuts and Siri. Dealer answers Siri too: say “Open Dealer in Wyldcards” to open it (the Shortcuts action can start it with a search already typed), “Run Trash in Wyldcards” to run one of its commands by name, or “Find cards in Wyldcards” to hear how many cards contain your words and which comes first, without opening the app. Commands you choose in Dealer are offered back as Siri Suggestions, and on iPhone and iPad Dealer shows a Siri tip until you close it. wyldcards://dealer?q=… and wyldcards://dealer?command=app.trash links do the same. Stacks and the cards you've opened show up in Spotlight search, and choosing one opens it in the app; signing out removes them. wyldcards://stack/UID/card/ID links open the same way. Trash lists stacks you moved to the trash: restore one, delete one permanently, or empty the trash. Stacks other people shared with you appear under Shared with Me: as a viewer you can read them, as an editor you can also change cards, and scripts stay off while a stack is shared. A stack protected with a password shows a lock; opening it asks for the stack's password, which the server then remembers for that sign-in, so each device asks once, until you sign out or the owner changes the password. It also opens Full Workspace and the card's scripts and widgets without asking again. After ten tries in ten minutes, wait a few minutes before trying again. Touch and hold a shared stack to Leave Stack…. On your own stacks, Sharing… shares the stack with another Wyldcards user by username, or by the email on their account to send an invitation, and lets you change someone's access or remove it. The same sheet creates a password-protected Public Link , revokes it, and Publishes the stack at a public URL; only cards you choose Make Public for appear in either. The Storyboard's Show menu filters by marked cards. A styled paragraphs field — a screenplay, a stage play, song lyrics — is written a paragraph at a time: tap a paragraph to write in it, and the rest stay set out in their styles. Return starts the next paragraph in the style that follows (a scene heading is followed by action, a character by dialogue), typing a style's prefix into an empty paragraph changes it — INT. for a scene heading, @ for a character — and the style name beside the paragraph changes it or deletes the paragraph. Songs inserted by reference show where they sit; Edit Song, the pencil button on an insert, changes the song itself (its own field on its own card), and the change shows wherever it is inserted. Focus (Cmd + Option + F) puts one of the card's writing fields — the one you last typed in, else its styled paragraphs field, else the multiline or rich text field with the most words — alone on the screen in one column: the paragraph you're writing stays bright while the rest dim, it stays near the middle as you write, and the bar counts the card's words and how many this sitting has added. The arrows in the bar move to the previous or next card without leaving focus. Editions, in Dealer, lists a stack's editions — parallel copies such as a blue draft beside the white one — for anyone who can edit it, and Open switches to another; the stack's name shows which edition is open. The stack's owner also makes a New Edition from the one that is open (every card and field is copied, so changes to it don't touch the others), and from an edition's menu renames it, makes it the default people with edit access open, publishes it as the one people with view-only access see, or moves it to the trash. The original can't be moved to the trash this way. Read, in Dealer, opens a stack with a styled paragraphs field as one quiet, read-only script, like the web's read view: the title page at the top, then every card's paragraphs set out in their styles, reflowing to the window with narrower indents on a phone. Its Script Files button saves the script as a PDF, Fountain, Final Draft, Word, plain text or EPUB file with the page view's settings (paper, margins, page numbers, a new page for each card, the title page), reads a Fountain, Final Draft, PDF, Word or EPUB script back in as a new card for each scene or onto one card, and, for editors, edits the title page. Scenes jumps to a scene heading; the text-size buttons, a typewriter or book typeface, and a light, sepia or dark page are remembered on the device, and the Page menu also reads only the marked cards or another paragraphs field. Outline, in Dealer, lists every card as a numbered heading with its field text beneath; people who can edit the stack rename cards and change text fields in place (other field types are marked and edited on their card), Titles Only hides the text, and the arrow beside a heading opens that card. Editors also move a card from its heading: up, down, to the start, or to the end, and the new order is saved for everyone. Paint opens the card's paint layer, the picture behind its parts: draw with a finger, an Apple Pencil, or the mouse. Choose the Pencil, Spray, Line, Rectangle, Round Rectangle or Oval tool — a drag sets a shape's corners — and turn on Fill to paint a rectangle, round rectangle or oval solid. Bucket pours the color into the area you tap, up to its edges, as the web's bucket does. Text asks what to write and paints it where you tap, in the chosen color, bigger as the width grows. Select (a rectangle) and Lasso (any outline you draw) choose part of the picture: drag inside it to move what is there, leaving its place clear, or choose Delete Selection to clear it, each one step to undo. Pick a color and a width, switch on the Eraser to take paint away with whichever tool is chosen (a filled eraser rectangle clears a whole area), and Undo the last stroke or shape. Choose This Card or Background — a background's picture shows on every card that uses it — and Wipe clears the one you are on. Save sends the whole picture, the same thing the web's paint mode posts, so a card painted on a phone looks the same on the web. Painting needs Authoring. In Settings, Snapshots… saves a copy of the whole stack and restores one later as a new stack, leaving the original unchanged.
Finding your way around. iPhone, iPad and Mac use the same card controls as the web workspace. Library, Share and Settings are in the header, and owners can click or tap the stack's name to rename it in place. Above the card, Cards opens its filterable list, the arrows and card-number field turn cards, and Focus hides surrounding controls. Bookmark is beside the card's title and the Editing / Browse control; editors can rename the card right in the title row, and Use name: “…” offers the first heading or line when a card or stack is still unnamed (in the header and in Card Details and Stack Details). Editable stacks start in Edit; turning cards keeps your current mode. Selecting a part opens its inspector, a drawer on iPhone or a column when there is room. Tools occupy their own rows so they do not cover the card. New card and Continuous scroll: On / Off sit below the canvas. Continuous previews are read-only and follow the selected card; choose Edit card or Open card to return in the current mode. Focus keeps navigation available; Escape closes one active layer at a time (active writing while a text field is being added, a typed card number, found-words highlight, the Cards panel, the selected part in Edit, Focus — restoring the Cards panel and Continuous choice — or Continuous scroll). ⌘K leaves Focus and opens Dealer. The separate Focus writing command (⌘⌥F) opens one writing field. Type in Dealer below the card and press Return to search in the native palette, or open it directly with ⌘K. Commands remain in the Mac menu bar and the iPad hardware-keyboard shortcut list. Starting a text field (T, double-clicking an empty spot, typing on an empty card in Edit, or Add Text) buffers your letters, line breaks and Backspace while the field is created; switching focus or cards pauses it, and if creation is interrupted or fails, a banner on that card offers Resume writing, Retry, Copy text (when the field already holds other words) and Dismiss. New card and Bookmark wait while saving; a delayed result never takes you back to another card. If you leave before a card is created, Open card offers it without interrupting your current work. Removing the last bookmark clears the Cards panel's Marked filter.
Dealer, at the bottom of the Library and in the More menu (or ⌘K while no stack is open), is the web's Dealer from the stack list: the places the web lists under Everywhere (Trash, Templates, Teams, API Tokens and the rest, each opening its screen in the app, or its web page where the app has none), every stack to open, and, once you type two letters, the cards whose words match in every stack. The commands you choose count toward the same ranking as on the web. Tap the microphone beside its search to say a search, or “open…” to run the best match; the first time, the app asks to use the microphone and speech recognition, which works on the device where it can.
Dealer docked to the side. On a Mac, and an iPad with a wide enough window, choose Dock in Dealer's search row (or press ⌥⇧D) to keep it open as a panel beside the card, or beside the stack list while no stack is open, as docking works on the web. While docked, the ✨ Copilot tab offers contextual suggestions and speculative proposals for active cards or your library: sort stacks (by name, recent, or custom order), configure opening start stack, customize Library title and dock preferences, reset defaults, switch layouts, filter stacks, toggle bulk organization, import documents, plan new stacks, or view Dealer tips with Apply and Discard actions. Choosing a result runs it and leaves the panel open, back at an empty search; Esc hands the keys back to the card and ⌘K takes you back to the search. The ⇄ button moves it to the other side, Undock floats it again, and ✕ closes it. The app remembers it docked on every screen and the next time it opens; on an iPhone, or in a narrow window, Dealer stays a sheet.
From the app icon. Touch and hold the Wyldcards icon on an iPhone or iPad Home Screen for Dealer, New Stack and the stack you opened last; on a Mac, right-click it in the Dock for Dealer, Search All Stacks and New Stack. Signing out takes the last stack off the Home Screen.
Siri and Shortcuts. On iPhone, iPad and Mac, ten actions work with Siri, Spotlight and the Shortcuts app with no setup: Open a Stack, Open a Card, Create a Stack, Add a Card (or say “Take a note in Wyldcards”), Add a Note to a Card, Open Trash, Open Dealer, Run a Dealer Command, Find Cards, and Find Cards in a Stack. Say a stack, card or command by name — such as “Open Recipes in Wyldcards” or “Add a card to Inbox in Wyldcards” — or let Siri ask for what is missing; commands that delete or leave something ask before running. Add a Card uses the first line of your text as the title when you leave the title blank, puts the card in your Inbox stack when you don't pick one (creating Inbox if needed), and can open the new card straight away. Creating and finding run in the background without opening the app, and Find Cards and Create a Card pass their cards to Open a Card or Add a Note to a Card so a shortcut can chain them together.
Commands (⌘K on a Mac or an iPad keyboard) is the web's command launcher: type part of a name to find any card action, any card in the stack, or another stack to open, then press Return for the top match or choose one. Exact and word-start matches rank first, then letters in order, such as "nc" for New Card, with the matched letters highlighted and a label saying where each one comes from. With an empty search your recently used commands come first, and actions that wouldn't work right now, like painting a stack you can only view, are left out.
Sharing a stack from the app. Touch and hold a stack (or right-click it on a Mac) and choose Sharing…, or choose Sharing… in the card's Stack menu. Type a username to share with someone who has an account, or any email address to invite them: someone without an account gets a link to make one, listed under Waiting to Accept with Withdraw until they use it. The same sheet makes the public link, publishes the stack, turns Scripts for Visitors on or off, and sets or removes the Stack Password. Edit as Markdown… in the Card menu opens the card as the Markdown file the stack's EPUB carries for it, as Edit as Markdown in the web edit bar's Card menu does; if someone changes the card while you edit, saving shows you the card as it now is instead of overwriting their change. In Dealer, swipe a command left (or right-click it) to pin it to your favorites, which the web's Dealer shows first too. In the inspector, an Image widget's Picture and a button's Icon Picture choose from the stack's uploaded pictures, and Upload Picture… adds a PNG, JPEG or GIF and chooses it; an Image widget's Alternative Text is what a screen reader says for it, and other widgets have Settings (JSON), the web's Config box, saved once it reads as JSON; the Style section also has Justified alignment, Scrolling Field and Lock in Place, as the web inspector does; a button shows its icon picture instead of its glyph, as on the web. Email… in your account menu (Settings on a Mac) changes the address password resets and invitations go to. Select Stacks…, in the Stacks toolbar's More menu, picks several stacks at once to export, move out of a group, or move to Trash, as the Library's Select does on the web. Customize Library… reorders your stacks by dragging (starred ones stay first), and sets the Library's layout (Grid, List or Columns), with Reset Library… to go back to the defaults. In Edit mode, the inspector's Arrange section lines parts up as the web's Arrange menu does: choose more parts under Selection (or Shift-click them on a Mac, or Shift-tap them with an iPad keyboard), then Align, Distribute (three or more), Same Width, Height or Size (copying the first part chosen), or Center on Card. Each part moved is its own change, so Undo takes them back one at a time. In Browse, a Card / Text / Markdown switch over the card, as on the web, shows the card as drawn, its words as one column, or, for editors with a connection, every card's name and typed text as one Markdown document in the card's place; the View menu has them as As Card, As Text and As Markdown (Cmd + 1, Cmd + 2 and Cmd + 3), and Dealer finds them too. Markdown Editor, in the Stack menu, switches to that Markdown view. It opens at the open card's heading and follows the card arrows; Preview lists what your edits would change and Apply writes them; moving a card's section reorders the cards and deleting it moves the card to the Trash; a field or card someone else changed meanwhile is left alone and reported. Where the window has room, Live Card shows the card itself beside the text. Leaving Markdown with edits not yet applied asks first, and Edit shows the drawn card, returning to your chosen view after. A stack with Adapt Cards for Phones on (in Stack Details, or Adapt cards for phones in the web's settings) shows each card on an iPhone, or any window 600 points wide or less, as a single column of its parts in reading order; in Edit mode the inspector's Preview shows the card as a phone, a tablet or the desktop would, read-only.
Apple apps: windows, iPad & card display
On a Mac or an iPad, Open in New Window on a stack (touch and hold it, or right-click) opens it in a window of its own. Open the stack you're in and its window starts at the same card; a stack that already has a window has that window brought forward. Each window is a complete, independent workspace: move through its cards, use its tools, and edit where you can. Opening a saved stack file there opens its stack in a window of its own too, and dragging a stack out of the list into Safari, Mail, Notes or Messages drops its link. On a Mac, the Window menu arranges the stack windows to share the screen: Tile Stack Windows puts them side by side while each stays wide enough and two by two after that, and Tile Stack Windows Side by Side and Tile Stack Windows Vertically choose for you. Window > Merge All Windows gathers every Wyldcards window, the stack list's included, into tabs of one window.
On an iPad. The bigger views — Storyboard, Outline, Read, Changes, History, Print, Paint, Draw and Help — open page-sized rather than in a narrow sheet. Drag text or a link from another app (in Split View, Slide Over, or a window beside Wyldcards) onto a card you can edit, and it becomes a new field where you let go; the card is outlined while you hold it over. In Paint, double-tap (or squeeze) an Apple Pencil to switch between the brush and the eraser; in Draw, it goes back to the tool you used before, so you can draw, double-tap to select and move, and double-tap to draw again. On a card you can edit, double-tap (or squeeze) the Pencil to switch between Browse and Edit, the way HyperCard's tools palette went between the browse tool and the one you used before; with the Pencil set to show a palette (a Pencil Pro's squeeze, usually), the card's tools appear over it instead — Browse, Edit, Paint and Draw — and choosing one, pressing ✕ or squeezing again puts them away. A card's scripts hear pencilDoubleTap or pencilSqueeze first, sent to the part the Pencil hovers over (or the card), with event.detail.x and .y when it hovered; on pencilDoubleTap halt keeps the tools as they are. If you have set the Pencil's double-tap to do nothing in Settings, the app leaves it alone.
Card Display, in Dealer (and the View menu on a Mac), arranges the card screen on this device. Card Size fits the whole card to the screen, grows it to fill the pane, or shows it at its actual size, and on an iPad or Mac, Inspector puts Edit mode's inspector on the left or the right of the card. On the right it is a full-height column you can drag wider or narrower. Reset puts both back.
Customize Shortcuts, in Dealer, changes the keyboard shortcuts for New Card, Edit Card, Dealer, Mark Card, Next Card, Previous Card, Storyboard and Focus on this device. Choose a shortcut and press the new keys, or pick the modifiers and a key; None takes a shortcut off, and Reset to Default or Reset All to Defaults brings the defaults back. A shortcut needs ⌘ or ⌃ so the key still types in fields, can’t use keys text editing needs (⌘ with an arrow, ⌘G, ⇧⌘G), and can’t be one another action already has. Next Card, Previous Card and Storyboard have no shortcut until you give them one.
Apple apps: scroll, mark & changes
Cards and Storyboard support reordering in List and Grid. Drag a card before another, or right-click (touch and hold on iPhone or iPad) and choose Move Card Earlier or Move Card Later; VoiceOver exposes the same actions. Clear filters before reordering. The current card, selected part and Markdown draft stay open, and only one move per stack saves at a time. New Card and move controls are temporarily disabled while a card is being created or moved. If you open another card, stack or Markdown editor while a new card is being made, an Open card notice offers the result without interrupting your work. Offline moves wait in the outbox and retain their order when sent. A rejected save leaves the previous order intact.
Card background: on iPhone, iPad and Mac, open Settings → Card Background or Dealer’s Card Details. Choose Stack default, Paper, Warm, Sage or Custom, check the preview, then Save. The choice applies to this card only, including Text view and phone layouts. Stack default restores the stack’s design and color. Background edits made offline wait in the outbox and sync when the connection returns.
Edit as Markdown: choose the Markdown icon beside Done in Edit mode, or Edit as Markdown in Dealer, to edit one card inside the workspace. Card navigation, Focus and Dealer stay available. Save (⌘S) returns to the card and checks the version you opened. A failed save or a change made elsewhere keeps your draft and its original version; use Copy Draft, then Load Latest… and confirm before replacing the draft. Cancel, switching cards or views, leaving the stack, closing the window, signing out, and deleting or moving the card ask before discarding unsaved changes. Wait for a save to finish before leaving. If opening fails, choose Try Again. This is separate from the whole-stack Markdown Editor.
View ▸ Read reads the whole stack, as on the web: it opens on Text for a card with a styled paragraphs field and on Cards otherwise, and the Cards, Text and Pages switch at the top keeps the field, the marked-cards choice and the card you are reading (Pages shows for a stack with a styled paragraphs field). ⌘⌥T (⌃⌘T on a Mac) goes between Text and Cards, and Done lands on the card you were reading. Cards shows every card in order, each keeping its layout; its Horizontal, Vertical and Continuous choice lays the cards side by side, one below another, or joined edge to edge as one long card, and the app remembers it; Open Card (in Continuous, touch and hold a card) goes to the interactive card. Editors can turn on Arrange Cards and move a card earlier or later with the arrows above it. Text on a stack without a styled paragraphs field reads every card's name and words, with a Cards menu to jump to one.
On a card, Mark builds a working set, and Previous Marked and Next Marked step through it, wrapping around. Turn on Marked Only in the Storyboard to see just that set. Marked Cards beside them works on the whole stack at once: Mark All Cards, Unmark All Cards, and Delete Marked Cards…, which asks first and then moves them to the stack's Trash — a stack keeps its last card, so that one stays whatever is marked. Author Notes opens the card's private notes, which only people who can edit the stack see. Card Details renames the card. On a card, Dealer has Comments, where anyone who can open the card can read and post (swipe a comment right, or touch and hold it, to Resolve it or Reopen it, as its author or the stack's owner can on the web), History, which restores a saved version after keeping the current state as another version, and Delete Card, which works as on the web: nothing asks first, the card goes to the stack's Trash, and Undo in the bar at the bottom puts it straight back where it was. Trash in the Stack menu lists the deleted cards to Restore or Delete Forever, the only step that can't be undone; New Card has Duplicate Card, New Card with Same Layout, and Templates (make a card from a saved card template, save the current card as one, or delete one). Present shows one card at a time on a dark backdrop; swipe or use the arrow keys, Space, Page Up, or Page Down to move, and editors can open the author notes beside it. The Navigator lists the whole deck beside the card (on an iPhone it opens as a sheet) so you can jump to any card, and when cards are marked, Present Marked plays just those, in their order. Card Details also has Can't Delete and Don't Search, and Settings has the stack's Protect Stack options; the app follows them, so a stack that can't be modified or is limited to Browsing or Typing turns off editing, and Typing or above is needed to type into fields. Open This Stack in the Editor, beside the card design, starts people who can edit on its first card in Edit mode; viewers still browse. In Edit mode, the part inspector has the web app's Hidden box, a Style section for font, size, bold, italic, alignment, colors, corner radius, and border, and a Button Style choice from Standard to Popup Menu; set a Family for radio buttons and Options for a popup. The inspector also has the web's Text Layout (Justified, Vertical Position and Columns), Lock in Place, Text Order, Glow When Pointed At and Visible when…, and the app follows them in Browse: a part shows only while its rule holds. A widget's inspector has its Config, the card a Card Preview shows or a Card Shortcut opens, and a picture's Alternative Text. In Edit, ⌘C, ⌘X, ⌘V and ⌘D copy, cut, paste and duplicate the selected parts, ⌘A selects them all, Delete removes them, and the arrow keys nudge them (Shift for bigger steps, Option for one point); right-click a part or the card (or touch and hold it) for the same commands and Bring Forward, Send Backward, Bring to Front and Send to Back. In Browse, check boxes, radio buttons, and popups remember what you pick, and hidden parts stay out of sight until a script shows them. Buttons and cards run their scripts in the app as they do on the web: tapping a button runs its on click script (and the card's, background's, and stack's handlers above it), and openCard scripts run when a card opens. The app runs them on the card's own web page, out of sight, so the same rules apply — on a stack someone shared with you, only scripts its owner approved run, and only after you choose Run Scripts in Dealer (on a Mac, the View menu) (Stop Running Scripts turns them off again). A script's answer and ask questions appear in the app, the cards it goes to open in the app, and a page the app has opens in the app instead of the web: the stack's Read, Pages (where the Songbook's Print the book goes) and Stats, and the app's own pages: Help, New stack, Search, Passkeys and Arrange stacks. A script that opens any other web page asks you to use Full Workspace. Without a connection the app keeps working from the copies it saved of the stacks, cards, and parts you opened: an Offline bar says so, field edits wait on the device and are sent when the server answers again (Try Again checks straight away), and an edit to a field someone changed meanwhile shows both versions, Mine and Theirs, with the lines that differ highlighted, and asks Keep Mine or Use Theirs; Copy Mine keeps your words on the clipboard if you take theirs. Review in the Offline bar, or Waiting Changes in the Stacks toolbar's More menu, lists everything still on the device in the order it will be sent: new stacks and cards, renames and moves, field edits with their text, and files to import. Send Now tries them straight away. A change the server refuses (the card was deleted, or the stack is no longer shared with you) is no longer dropped: it stays in the list with the reason, a bar says a change couldn't be sent, and you choose Try Again, Copy Text, or Discard (swipe the row, or touch and hold it). Discarding a new card or stack discards what was made on it; discarding an edit puts the field back to the server's text. When the server itself is having trouble, nothing is given up and everything is tried again a minute later. While offline the app looks for the server again after 5 seconds, then less and less often (up to every two minutes), and at once when the network changes or you choose Try Again; if the live connection to an open stack drops, the open card is read again when it returns, so a save made meanwhile isn't missed. Touch and hold (or right-click) a stack for Notify Me of Changes, a notification the app makes on the device itself when someone else changes a stack you can type in (one notification a stack, naming who and what, never for your own typing, and not for the stack you have open in front of you). The app asks for permission to notify the first time you turn it on. It looks every ten minutes while it is open and whenever you come back to it; on iPhone and iPad the system also wakes it now and then in the background, when it sends waiting changes too, and tells you if one was refused. New entries in your notifications, such as comments and mentions, can show the same way. Signing out stops the notifications. Signing out deletes the saved copies. A card lies on a shaded desk with a hairline edge, and a stack’s card design (paper, midnight, postcard) keeps its own ink in light and dark mode alike. Cards show their paint layers, the background's picture and then the card's, behind their parts, and image widgets show the stack's uploaded images; Paint changes those pictures. A card's drawing (the vector shapes made with Dealer's Draw command on the web) shows over its picture too, sharp at any zoom and in the card's own text colour where a shape uses Card ink. Draw in the card menu opens that layer in the app: choose Pen, Line, Arrow, Rectangle, Rounded Rectangle, Oval, Polygon, Curve or Text, pick an outline and a fill (Ink follows the card's text colour, or choose a colour or none), a width and a solid, dashed or dotted line, and draw. With Select, tap a shape to choose it, drag to move it, and pull one of its corner handles (or either end of a line) to resize it; the same controls then restyle it, and Duplicate, Bring to Front, Send to Back, Change Words and Delete Shape act on it (with a keyboard on a Mac or iPad, Delete removes it too). Undo and Redo step through the changes, This Card or Background chooses the layer, and Save sends every shape, as the web's Draw mode does — shapes made in one can be changed in the other. Polygon and Curve tap out points: tap the first one again to close the shape, or choose Finish. The round handle above a chosen shape turns it, and Arrange has Rotate, Straighten, Flip, To Path and Edit Points. Shift-click shapes (Shift-tap with an iPad keyboard), or choose Select All in Arrange, to choose several: they move together, Delete takes them all, and Align and Space Evenly line them up as the web's do. Style has Copy Style and Paste Style (Option + Shift + C and V), as on the web, and Export SVG saves the layer's drawing, once saved, as an SVG file. Text takes a font, bold, italic, underline and left, centred or right alignment; tap words with the Text tool to change them, and ⌘B, ⌘I, ⌘U and ⌘⇧> / ⌘⇧< style them while you type. Drawing needs Authoring. Every other widget (a drawing, a gallery, and the rest) is the same live widget the web card has, shown in place on the card: it plays, saves to the card's fields, and talks to the card's scripts exactly as it does on the web, and a panel it opens can reach past the widget's frame. Offline, widgets and scripts still work on cards whose page is saved on the device (see Apple apps: offline); on any other card a widget shows its name and Works when you're back online. Choose a widget's Widget Type in its inspector. Time fields use a time picker (Set Time on an empty one, and a clear button unless the field is required), Dropdown fields show a menu of their options, which you edit one per line in the inspector, and Rich Text fields show their bold, italic, underline and strikethrough, headings, quotes, lists, links, colours and alignment, and while you type in one a bar above it sets them, as the web's rich text toolbar does. On the Mac, the menu bar has everything the card’s pills and Cmd + K do, with their shortcuts: File (New Card, Duplicate Card, New Stack…, Import Stack… Cmd + O, Waiting Changes…, Trash…, and for the open stack Keep Offline, Notify Me of Changes, Star, Sharing… and Move to Trash, as its right-click menu has them), Edit (Undo and Redo My Last Change, Search All Stacks… Shift + Cmd + F), View, in groups: Edit Card and Live Card; the ways to see the stack (Storyboard, Outline, Map, Canvas); Read and Focus; As Card Cmd + 1, As Text Cmd + 2 and As Markdown Cmd + 3; how the card shows (Two-Up, Cards Only); Practice; Zoom In, Zoom Out and Zoom to Fit for the card; Make Text Bigger Cmd + +, Make Text Smaller Cmd + − and Actual Text Size Cmd + 0; Refresh Stacks; Dealer and Run Scripts; Card Display; and the appearance), Card (mark, Delete Marked Cards…, comments, history, paint, add a field, button or widget, card and background scripts, make public or private, delete, move earlier or later) and Go (Next and Previous Card, the marked cards). A command that can't be used right now is dimmed. An iPhone with a hardware keyboard answers the same shortcuts. A .wyldcards.json backup, a Markdown copy or a Word document opens with Wyldcards from the Finder or Files (Open With, or a drop on the app's icon on the Mac) and shows the import preview; nothing is made until you choose Create Stack. The card you have open is offered to your other devices through Handoff, and opens in a browser there if Wyldcards isn't installed. Pinch a card (or pinch on a trackpad) to zoom in up to 400%, then drag to move around it; the percentage button at the bottom fits it to the window again. With a mouse or keyboard, Zoom In, Zoom Out and Zoom to Fit in the View menu (or ⌘K) do the same: ⌥⌘=, ⌥⌘- and ⌥⌘0. Card text follows the larger system text sizes in Settings, gently, since a card is a fixed layout, on top of your account's text size; VoiceOver reads a card's parts from the top down and left to right, names the card, and labels its text fields. On iPhone, turning a card, ticking a checklist line, a conflict and an error are felt as well as shown. With a keyboard, press ← or → for the previous or next card while you are not typing in a field, Cmd + N for a new card, and Cmd + E to switch Edit mode; on a Mac, a new window is Cmd + Shift + N. Choose your account name in the toolbar to set the Appearance (System, Light, or Dark) and Text Size — both saved with your account, so the web opens the same way — to Change Password…, or to sign out; the app asks for a new password straight away when your account requires one. For anything the app doesn't have yet, open Full Workspace from the Stacks toolbar's More menu. Components in the inspector saves the selected part under a name with Save as Component…, and puts a copy of any saved component on this card or its background, in any stack you can edit; changing a copy doesn't change the component. A multiline field's Ruled Lines toggle in the inspector draws HyperCard's lines under its text, as the web's does. In Edit mode, the Part selector at the top of the inspector picks any part on the card, topmost first, so one hidden under another or too small to tap is still in reach. A button's Destination is a chosen card, the Previous Card, or a Random Card, as on the web; a card destination with no card chosen runs the button's script. A Linked Cards field shows a chip for each linked card — tap one to open it, even in another stack, or × to unlink it — and Link a Card finds another by name in any stack you can open (or only the stack chosen under Link Cards From in the inspector); a linked card lists what links to it under Linked from. Under a card, Links here names the cards whose buttons or card-link fields point at it, each a tap away, and Related Cards… connects a card to others in the stack without choosing a direction, shown on both cards. When Field Equals adds a route — a field, the value to match, and the card to go to — saved with Save Route and taken whenever the field matches. Tapping a line of a list field tells the card's scripts, so an index card's wyldcards:select handler — the Songbook's Contents, say — goes to the song you tap.
Changes lists every edit to a field or a card's name, newest first, with who made it, when, and the words removed and added. Put Back returns one to how it was before (and offers Put Back Anyway when it has changed again since), and Undo My Last Change and Redo — also ⌥⌘Z and ⇧⌥⌘Z on a card — take back or bring back your own latest change without writing over anyone else's.
The apps also do what these web features do: in Dealer, type words and choose Mark the cards that match or Replace … in this stack…, narrow a search with in:, kind:, has:note and edited:, and type snippet Name: text to save a snippet. A styled paragraphs field's menu has Deleted Lines… to put a line back. In Edit, Interactions… in the Card menu lists everything on the card that reacts, with Select and Try it, and a part's Build Actions Visually… makes the same visual actions as the web, which either can reopen. Paint has the web's Brush, fill patterns and FatBits (on an iPhone or iPad, Move Around pans the zoomed picture). On a shared stack, the people on the same card show above it, with a ring on the field they're typing in; choose one and Follow to go where they go. Export as Canvas (Obsidian)… saves the stack for Obsidian's Canvas, and the export sheet also saves the stack folder as a zip; Stack Settings ▸ Book uploads a cover picture; and Reading App Catalog…, in the account menu, makes the private catalog address, which asks for your password once to make it.
Apple apps: offline
The stacks you opened most recently on this device and your starred stacks, eight in all, are kept offline automatically: when one opens, all its cards are copied in the background with their pictures, so it opens and its cards, pictures and search work without a connection, even cards you never opened here. On cellular only the cards' text is copied, and the pictures follow on Wi-Fi; Low Data Mode turns the automatic copying off. The system can clear these copies when storage runs low, and a stack that drops out of the eight stops being refreshed. Keep Offline in a stack's menu (Keep Stack Offline in the File menu) is for a stack you want kept for sure: it downloads the cards, paint layers and uploaded images, and the automatic list never replaces it. A kept stack's pictures stay on the device until you stop keeping it: the system doesn't clear them when storage runs low, as it can other cached copies. If the connection drops during a download, it carries on by itself once you're back online. Kept stacks refresh every few hours while the app is open, and the iPhone and iPad apps also refresh them in the background when the system allows, usually overnight. You can download again, or stop keeping a stack offline, which lets its files be cleared like any other cached copy. Open stacks also cache nearby cards and their pictures unless Low Data Mode is on. Offline, Find, Search and Help use the copies on this device; Help shows the topics as they were when it last loaded. Signing out removes saved copies after warning about unsent work.
On iPhone, iPad and Mac the app opens straight to the stacks it kept last time and checks with the server in the background, so you don't sign in again after a relaunch, with no connection, or while the server is restarting; it shows Offline and catches up by itself when the server answers. If your session ends while changes are still waiting (you signed the app out on the web, or reset your password), those changes stay on the device: the sign-in screen says how many are waiting, and signing in as the same account sends them. Discard Them… there removes them instead.
Offline, you can also make and rearrange cards, not only type into them. New Card adds a card straight away, with its background's fields ready to type into and record on. Delete Card, Move Earlier and Move Later, Mark, and renaming in Card Details work too; as on the server, a stack keeps its last card and Can't Delete cards stay. These card changes are sent first when the server answers, in the order you made them, and then the edits on the new cards. The Offline bar counts them with everything else waiting. Import keeps the file on the device and makes the stack when you're back online. Save as File… needs a connection. New Stack works offline as well: the stack joins your list with its first card, ready for new cards, and is made before anything in it is sent. Stack Settings, Star and Move to Trash show in the list straight away and are sent when you're back online. Trash, a stack's card Trash, and Editions show the list as you last saw it, and an edition opened here before still opens. Restoring a stack, Delete Permanently and Empty Trash work offline too and are sent when you're back online; Empty Trash deletes only the stacks the Trash showed on this device. Managing editions needs a connection.
These work offline as well, and are sent when you're back online: Duplicate Card, New Card with Same Layout, a new card from a template (its background's fields show at once, the template's own parts once it is sent), Make Public and Make Private, Can't Delete and Don't Search, the card's date and script, Delete Card and restoring a card from the Trash, check boxes, radio buttons and popups in Browse, and the appearance and text size. Paint and Draw save offline too: the picture shows at once and is sent later. If a card's picture isn't on the device yet, Paint won't save over it until you're online. Commands only the server can do, such as Comments, History, Related Cards, Changes, Undo and Redo My Last Change, adding a field, button or widget, Save Card as Template, Mark All and Author Notes, are dimmed and say Needs a connection.
Card scripts and web widgets (a drawing, a gallery and the rest) work offline too, on cards whose page is saved on the device: every card of a stack you keep offline or that is kept automatically (once it has been copied on Wi-Fi), and any card you opened before. What a script types into fields waits and is sent later; any other change a script makes says it needs a connection. Tapping a button on a card whose page isn't saved says why instead of doing nothing.
Android app
The native Wyldcards app for Android phones and tablets signs in to your Wyldcards site with your username and password (or a passkey), then stays signed in with a session key of its own, sealed by the device's keystore; your password is not stored. Forgot Password? on the sign-in screen requests a recovery email, checks a pasted recovery link or token, and sets a new password in the app. It signs in to wyld.cards unless you choose Use Another Server, and Create an Account makes one with a generated name and password, shown once. In Account (or More ▸ Teams… / Dealer), you can also view, rename, and remove registered Passkeys, set up and manage Two-Step Sign-In (add Wyldcards to an authenticator app or copy the setup key, save or share the ten single-use recovery codes, make new recovery codes, or turn it off), configure Notification Delivery preferences (also in the Notifications inbox sheet), create and manage Teams (invite or add people, change roles, open stacks shared with the team, or leave), change your email or password, manage API tokens and your Reading App Catalog address, download your data, or delete your account. Sign Out, in the stack list's More menu or Account, ends that session and removes the copies kept on the device.
Stacks. Your Library lists Starred stacks above Other Stacks in your Home order with nested substacks in both Grid and List views, Filter stacks (press Enter to open a single match or search inside cards with Dealer, and Escape to clear), the Grid / List switch (kept in sync with your Home layout), and All, Mine, Shared with Me and Published filter chips at the top, and the Dealer command bar at the bottom. Pull down to refresh. Other lists that refresh by pulling down (Teams, Passkeys, API Tokens and Changes) have a Refresh button on the Mac, or press ⌘R. + New stack makes a new stack (offering Use name: “…” from the description while unnamed) or imports a document; More has Select Stacks (bulk Move Out of Group, Export, and Move to Trash), Customize Library (custom title, Custom/Name/Recently Changed sort, Grid/List/Columns layout, opening stack at sign-in, manual stack reordering, and Reset Library…), Show Archived, Trash (Restore, Delete permanently, or Empty Trash), Full Workspace (the whole web app, signed in, inside the app), appearance and text size. Touch and hold a stack, or use its menu, to open, share (for stacks you own), rename, star, group with another stack, move out of a group, archive, save as a .wyldcards.json file, export, or delete it (or Leave Stack… on a stack shared with you); a deleted stack waits in the Trash. A stack with a password asks for it once per sign-in (and Lock Stack in the card's menu or Dealer locks it again).
Dealer & Help Center. Type in the Dealer bar at the bottom of the Library or card screen, choose Dealer in the More menu, or press Ctrl + K on a keyboard, to switch between ⌘ Commands and ✨ Copilot (contextual suggestion pills and speculative proposals for card dimensions, design, mobile layout, auto-grow, flashcards, and checklists with Apply Changes and Discard), or on wide tablet screens Dock / Undock (Alt + Shift + D, and ⇄ to switch between left and right edges). In Commands, find anything by typing part of its name: the places the web lists under Everywhere (on the app's own screen where it has one, else in the browser), your stacks, the cards of the stack you are in, and, once you type two letters, the cards whose words match in every stack (with the open stack's cards first, field snippets under each title, Show 8 more matches when more cards match, and Search all stacks for “…” at the end). Scope chips (All, Cards, Stacks, Actions), tappable prefix chips (#12 for card numbers, @ or / for stacks, > for actions, ? for Help Center topics, + for quick card creation, and ~ for recent cards across every stack), pinned Favorites (up to 8 commands, stacks, cards, or searches pinned with the star button or Ctrl + D and synced with your account), Recent searches when the search box is empty (↑ recalls the last search), card and stack row actions (Tab, →, or ⋯ to Open, Move to stack, Copy link, or Pin/Unpin), reusable Snippets (snippet Name: Body or new snippet Name: Body with {date}, {time}, and {cursor} expansion, copyable from Dealer and removable with Ctrl + Backspace twice), inline Help topic matches (ranked with close-spelling tolerance, read in the app's native Help Center — also in More ▸ Help… with offline fallback — or searched on the web), and search filters (in:Stack, in:"Stack Name", in:this or in:here, kind:note|field|card|button, has:note, and edited:today|yesterday|week|month|year|3d|2w|YYYY-MM-DD, shown as removable chips under the search box) narrow the list; in an editable stack, card matches also offer Mark the N cards that match and Replace “…” in this stack… (with live change previews, Match case, Whole words only, and a one-tap Undo pill on the card screen), and typing +Title: Body @Stack, new card in Stack: Title, or new stack Name creates a card or stack straight from Dealer. Use the arrow keys (↑/↓, Ctrl + N/Ctrl + P, Page Up/Page Down, Alt + ↑/Alt + ↓ between groups, or Alt + 1–9 to run the first nine rows) and Enter to pick one (keeping your chosen row as results arrive), and Escape clears your search or steps back from actions, Move, or Replace before closing; the ones you choose come first next time, and count toward the same ranking as on the web. The microphone in the search box lets you say a search instead, using your phone's speech recognition; start with “open…” to run the best match (destructive actions ask for confirmation first).
Finding your way around a stack. Android uses the same card controls as the web and Apple workspaces. Library and Settings are in the header, and owners can tap the stack's name to rename it in place. Above the card, Cards (G on a keyboard, or in Dealer) opens its filterable drawer (multi-word filtering across card number, title, and field text with context snippets, a Marked chip, background filter chips when a stack has multiple backgrounds, Enter to jump to the next matching card, an Outline shortcut, List and Grid views, and Move Card Earlier, Move Card Later, Move to Start and Move to End reordering when filters are clear), the arrows (← / →, or Shift + ← / Shift + → for marked cards) and card-number field turn cards, and Focus (Ctrl + Alt + .) hides surrounding controls and remembers that choice across stacks. Bookmark (Shift + M, showing a Marked card N. / Unmarked card N. note with Undo) sits beside the card's title and the Editing / Browse control (Ctrl + E, with an inline Edit as Markdown button beside Done editing); editors can rename the card in the title row, and Use name: “…” offers the first heading or line when a card or stack is still unnamed. When you open a card from Dealer or Search, or filter by words in the Cards drawer, a found-words bar appears above the card in Browse mode, outlining matching fields and buttons on the card (and in Text view) and offering Previous, Next and Clear. Tools occupy their own row so they never cover the card, or in Browse the Card / Text / Markdown switcher (Ctrl + 1, Ctrl + 2, Ctrl + 3, or in Dealer) shows the drawn card, its words in one column (with a Plain / Teletype face toggle and Show / Hide to open a live widget in place), or the whole stack as one Markdown document. Below the canvas sit + New card (N in Browse), Continuous scroll: On / Off (read-only continuous preview that follows the selected card, with Edit card or Open card to return in the current mode), and the Dealer command bar. Back or Escape closes one active layer at a time (active writing while a text field is being added, a typed card number, the found-words filter, the Cards drawer, the selected part in Edit, Focus — restoring the Cards drawer and Continuous scroll state — or Continuous scroll). Starting a text field (T, double-tapping an empty spot, typing on an empty card in Edit, or Add Text) buffers your letters, line breaks and Backspace while the field is created; switching focus or cards pauses it, and if creation is interrupted or fails, a banner on that card offers Resume writing, Retry, Copy text (when the field already holds other words) and Dismiss. New Card, Duplicate Card, reordering and Move to Stack… wait while saving (showing a Card N created pill when opened); if you switch cards or stacks before a new card finishes, an Open card banner offers it without interrupting your work, and removing the last bookmark clears the Cards drawer's Marked filter.
Cards, fields, layouts, snapshots, scripts, books & sharing. Swipe sideways or use the arrows to turn cards, and pinch to zoom. Read, in the More menu, opens the stack in Cards (across, down, or continuous), Text or Pages (with Script Stats… and Find and Replace… across selected paragraph styles); Script Files… exports or imports Fountain, Final Draft, PDF, Word, or EPUB scripts (as scenes or onto one card) and edits the stack's Title Page; and Book… sets the book's theme, cover card or uploaded custom cover image, extra CSS, subtitle, contributors, and shelving metadata. Fields save a moment after you stop typing: Linked Cards fields offer + Link a Card search across stacks and × unlinking; multiline fields with Next card overflow offer Next Card Flow… to push trailing lines to or pull paragraphs from the next card; and styled paragraphs fields offer inline Edit… (with paragraph style chips, character/scene-heading auto-suggestions, and + Insert Card… for [+] / [+all] song and card inserts with inline Edit Song…), Spelling… (to view and add custom words to the stack's dictionary), Versions…, and Deleted Lines…. Below the card in Browse mode, Links here and Linked from list incoming card links and references. Buttons go to their cards and run their scripts, check boxes, radio buttons and popups work as on the web, and the paint and draw layers show behind the parts (with Draw & Paint… in the More menu or Dealer to inspect, edit, upload, or clear card and background vector shapes and PNG paint layers). Scripts run on the card's own page out of sight: answer, ask and choose appear as Android dialogs, and a script's go, show and hide are followed. Live widgets such as a drawing or a gallery are shown in place on the card; they need a connection. In the More menu (or Dealer), Copy Card, Cut Card, and Paste Card copy or move cards across stacks, Duplicate Card and New Card with Same Layout copy the open card, Merge Cards… and Sort Cards… combine or sort cards, Card Details… edits the card's name, protection, book role, background colour, and picture description, Layout… switches or duplicates shared backgrounds, Card Templates… saves or creates cards from templates, Card Trash… restores or permanently deletes trashed cards, Interactions… lists reactive parts with Select and Try It, Card Script…, Background Script…, and Stack Script… (plus Edit Script… on any part) edit _hyperscript at every level, Review Scripts… approves pending scripts, Snapshots… saves checkpoints or restores a snapshot as a new stack, Compare Versions… diffs any two snapshots or editions, Code Editor… previews and applies .wyldcards.xml stack markup, Export Stack Backup (.json)… exports a JSON backup, Editions… switches or manages parallel copies of the stack, Share… manages collaborators, invitations, custom Roles…, Teams, Public Link, Publish, Check Before Publishing…, and the Stack Password, Card Background… sets a per-card paper colour (Stack default, Paper, Warm, Sage or Custom), and Edit as Markdown (or the code button beside Done editing) edits the open card's Markdown inline with Ctrl + S save and conflict checking.
Edit & tablet layout. The pencil (or Done checkmark) switches between Browse and Edit: tap a part to select it, drag it to move it, and drag its corner handle to size it on the 8-unit grid. + adds a text box, field or button, the sliders button opens the inspector, and the bin deletes the selected part. With a wide enough tablet window, the Library stays beside the open card (the menu button at the top left hides it and brings it back), and Edit keeps the inspector open as a side column beside the card.
Together and offline. A live Presence Bar above the card shows collaborators currently in the stack, which field they are typing in (with a coloured ring around that part on the card), and one-tap Follow / Go to Card N, and a shared card updates as other people save it. If someone changed a field while you were typing in it, the app shows both texts and asks Keep Mine or Use Theirs. Whatever you have opened is kept on the device: with no connection the app says it is offline, opens those copies, and keeps your field edits until it can send them; tap the banner to try again. Making cards and stacks, editing parts, search and live widgets wait for the connection.
From other apps. Touch and hold the app's icon for the Search shortcut. Links of the form wyldcards://stack/…/card/… open that card in the app. Appearance (System, Light, Dark) and card text size are saved with your account, so they follow you to the web and the other apps.
Find & Search
Search shows its match count once, under the heading. Use Library at the top to return to your stacks. The Dealer input at the bottom stays available for commands while the Search field and Filters narrow your results.
Dealer (Cmd + K anywhere, the Dealer field in the Library, or Enter in the Library's Filter stacks box) searches every stack you own as you type: matching cards appear under Cards, after any matching commands, showing the stack and the text that matched. Choose Search all stacks for “…” at the end of the list to open the full results page, which looks across every stack you own at once, grouped by stack, with the stack's own name and description matched too. Beside the name of each stack you own, Share opens the Sharing tab of its settings. It also searches your private author notes; scripts are not searched. Use several words to narrow results: they stay in the order you typed, but can cross punctuation, extra text, or line breaks. Archived stacks are searched and marked as archived; stacks in the trash are left out. Every result shows the passage around the match with your words highlighted, and when the card was last edited.
Type in:this (or in:here) before your words to keep Dealer's card results to the stack you are in. When you can edit the stack, two more rows follow the card results: Mark the N cards that match marks every card the words are on (a card's name, a field or a button), so you can go through them with Go to the next marked card or move them; the page shows an Undo that unmarks just those cards. Replace “…” in this stack… asks what to put in their place and, as you type, lists each card name and field that would change with the words around it, and on the card you are viewing draws a dashed box over each field it would change, saying what it would become; Edit text on this card… (in Dealer's card actions, when you can edit the card) lists the card's plain and multi-line text fields; choose one, retype its words in the Dealer box, and the card shows a box over that field with what goes struck through and what comes in marked, before you press Enter to save. A toast offers Undo. Fields with rich text or several lines are edited on the card itself; Match case and Whole words only narrow it, and Enter replaces. Rich text keeps its bold and links, styled paragraphs keep their styles and marks, and fields that hold a date, number, checkbox or card link are left alone. One Undo puts every change back, except a field someone has changed since, which stays as it is (its card history still has the earlier text). With marked cards in the stack, type "marked" for Go to the next marked card and Unmark all.
Filters on the search page narrow the results: Whose stacks (Mine, the default; Shared with me; or both), one Stack, when the card was Edited (from, until, or both — a field saved counts as the card edited; a stack's own name, and text on a background shared by every card, go by when the stack was last changed), and the Kind of match: card names, field text, stacks, buttons or author notes. Tick none to search every kind. The filters are part of the page's address, so a filtered search can be bookmarked or sent to someone; Clear filters keeps your words and drops the rest. When nothing matches, the page offers the next step: Also search stacks shared with you for a search of your own stacks, or Clear filters and search again for a filtered one. In a stack shared with you, you find only what your role lets you see, and never the owner's author notes. The same filters work on GET /api/search as stack, kind (repeat it or separate kinds with commas), from, to (dates such as 2026-09-01) and owner (mine, shared or all); each hit carries snippetParts (the passage in plain and matched runs), snippetHtml (the same, escaped, with the matches in <mark>) and editedAt.
From a script, wyldcards.find("chorus") searches the stack you are in and goes to the first match — pass false as a second argument to look without moving, and call wyldcards.findAgain() for the next one.
Dealer
Dealer lives in the bottom command bar across Library, Settings, Account, Help and the card workspace. Type directly in the bar or press Cmd + K; results open above it. When the bar is focused and results are closed, Enter, ↑ or ↓ opens them without running a command. With results open, use the arrow keys to choose and Enter to run a command. Your chosen result stays selected while more results arrive, including when you choose the first row with Home. Until you choose a result, Dealer follows the best match; changing the search or scope starts there again. Back and Forward restore an open search with its words, scope and available selection. Commands keep following the current page as its controls change. Escape clears a search, returns to the previous step, or closes an empty search and returns focus to the control that opened it. Tab moves normally out of the closed bar. A back arrow with the current step’s name appears above the results while choosing a stack or reviewing a new card. Tap it to return to the previous step. Local filters above a list narrow that list; Dealer searches cards, stacks and actions across the app.
Dealer finds your cards and stacks as well as actions. Prefixes along the bottom narrow the search before you type. Use the arrows to select a result and Enter to open it.
Once you type two or more letters, the cards and notes that contain them appear under Cards, after the commands that match well, with the stack name and the matching text; cards in the stack you are in come first. Cards whose field text holds the words are listed under In card text, each with the passage and your words highlighted (up to six; a card whose name matched stays under Cards). Choose one to open that card. When no card holds your words and one of them looks like a slip for a stack or command name, Did you mean “…”? searches the corrected words instead. Up to eight cards are listed at first; when more match, the list carries on by itself: scroll down toward the end of the cards (even when they all fit and the list cannot scroll), or press ↓ past the last one, and the next ones come in place, as many as it takes to fill the list (with ↓, the first new one is selected), fetching more from the server as it goes, up to the first thousand card names, field texts and notes that match. Show 8 more matches at the end does the same with a click. The last result, Search all stacks for “…”, opens the full search page with every match grouped by stack, and is the top result when no command matches, so typing and pressing Return always searches.
The empty All view is a short starting point: your pinned Favorites, the stacks you were in lately at the card you left (the first is Resume), the commands you chose most lately, your Recent searches (the last three searches you opened a card or the search page from; choose one to search again, or press ↑ in the empty box for the very last), and useful actions such as creating a card or running a command. Searches are kept with your account, so they follow you to every browser you sign in on; select one and choose Pin favorite to keep it among your Favorites as a Saved search, filters and all. The full catalog stays searchable. Select an action, a stack or a card and choose Pin favorite to keep it handy (a card pinned here or in the iPhone, iPad or Mac app shows among your Favorites by name, and stays found by typing it); up to eight favorites are kept with your account, so they follow you to every browser you sign in on (signed out, they stay in this browser). Exact and word-start matches rank first. Looser matches — letters scattered through a name, such as "nc" for New card, a keyword matched partway through a word, or a typo a letter off, such as "recpies" for Recipes — are listed under Other matches, after the cards that contain your words, so typing "pan" shows your Pancakes cards before the looser matches. Among matches, the commands you choose often and lately rise a little, so a habit from today counts more than one from last month. Matching letters and each command's group are shown beside the result. Available keyboard shortcuts appear beside their commands.
Use All · Cards · Stacks · Actions to choose what you are searching. This stack searches card content only in the open stack. Card results show the card title, stack name and matching text; on a larger screen, the selected card or stack is pictured beside the list — the card itself, or the stack's cover card — with its text below. Select a card and press Tab or choose Actions for Open, Copy link, and, when you can edit its stack, Edit, Duplicate and Move to stack. Moving asks for a destination and then an explicit Move, appending the card there; the card then opens in its new stack with an Undo that puts it back where it was. To act on several cards at once, press Shift + Enter on each card result to tick it (again to untick), then Tab: Move N cards to stack moves them all, even from different stacks, with one Undo for the lot; Copy links works on every ticked card. The row under the results says how many are chosen; choose it to clear them. Type a name that isn't a stack yet and choose Move to new stack to start one with just that card. Move this card starts the same workflow for the current card. Select a stack and press Tab for Open and New card; for your own stacks also Rename (type the new name, then Enter), Star, Sharing and settings, and Move to Trash, which offers Undo. With no matches, use Clear filters, Search all stacks, or Create a card.
A first character changes what you are searching; while the box is empty, the bar under the results names them all, and choosing one types it. A line under the search box also suggests one of them to try, a different one each time you open Dealer; choose it to type it. Once you type, the same bar shows the keys to select, open and close instead. #12 goes to card 12 of the stack you are in. @ (or /) searches only your stacks, and ? only the Help Center's topics; while you type anything else, the best few Help topics appear under Help after the cards. Add filters to a card search: in:Songbook (or in:"Road Songs") searches one stack, in:this the stack you are in (see Mark and Replace), kind:note, kind:field, kind:card (names), or kind:button keeps one kind of match, and has:note does the same as kind:note. Three more narrow what counts as a match, the way a careful find does: case: keeps only the same capitals as you typed, word: only whole words (so word: rain skips "rainbow"), and field:Lyrics only text in fields of that name or label (or starting so); case:off takes one back out. edited: keeps the cards last edited on certain days: edited:today, edited:yesterday, edited:week, edited:month or edited:year, a number of days, weeks, months or years back to today such as edited:3d or edited:2w, one day such as edited:2026-09-01, edited:>2026-09-01 for since then, edited:<2026-09-01 for until then, or edited:2026-09-01..2026-09-10 for the days between. Search all stacks then opens the search page with the same days (and the in: stack) already chosen. They carry on into Mark the cards that match and Replace, which then start with Match case, Whole words or that field already chosen. Press Tab at the end of a filter to fill in its value — in:son becomes in:Songbook, kind:fi becomes kind:field, field: offers the fields on this card, and in:th becomes in:this — and Tab again for the next choice; the same works after @ in +Pancakes @rec. A chip whose value is not known yet shows what Tab would put. Each filter shows as a chip under the search box; its × takes it out. With a filter, only card results are listed. new stack Songs makes a stack and opens it; new card in Recipes: Pancakes adds a card named Pancakes at the end of Recipes and opens it for editing (the stack name can be the start of one), and new card: Pancakes does the same in the stack you are in. A second colon puts text on the card as well: new card in Recipes: Pancakes: Mix flour, eggs and milk makes the card with that text and opens it. + is the short way to write new card: — +Pancakes, or +Pancakes: Mix flour with text — and a last word starting with @ picks the stack in either form: +Pancakes @rec. With no stack named, the card goes to the stack you are in, or else to the stack your notes go to. A stack name that fits several stacks lists each of them to choose from. Shift + Enter on a new card row adds the card without leaving Dealer and leaves + (and the stack you named) in the box for the next one, with Open and Undo add for the card just made — a quick way to jot down a run of cards. To add a card with nothing but typing, type the text and choose Add as a card, the last row under the card results, or press Alt/Option + Enter from anywhere in the list: the card goes to the same stack as a note (below), or you choose one, and Dealer stays open with Open and Undo save. Start with a title and a colon, Groceries: eggs, milk, to name the card.
A web address, a pasted picture or several pasted lines, the selected text, or words typed with Add as a card (Alt + Enter) open a review form before anything is saved. It goes to your usual stack: the stack you are in when you can edit it, else the one you saved to last, else a stack called Inbox. Start typed words with a title and a colon, Groceries: eggs, milk, to name the card; otherwise the card takes the start of the text as its name. The review form lets you edit the Title, Content and Destination stack before choosing Save. While editing a field there, Cmd/Ctrl + Enter saves; Enter in Content adds a new line. For multiline pastes, choose One note or One card per line; edit the content to change the cards, whose names come from the nonempty lines (up to a hundred). Nothing is created until you save, and a failed save keeps your edits available to retry. Saving opens the new card, with an Undo that takes it out again. Add widget in the card editor opens a list of widget types; choose one to add it. Workflows have a breadcrumb: click it, press Esc, or use Backspace on an empty input to return to the previous step.
~ (or Recent cards under Everywhere) shows the cards you opened lately, in any stack, as a grid of pictures, newest first: up to twenty-four, each with its stack and when you were there. The card you are on is left out. Type after the ~ to narrow them by card or stack name. ↑ and ↓ move a row, ← and → one card, Enter opens it, and Tab gives the card's actions. The list is kept with your account, so it follows you to every browser you sign in on; cards in a stack whose role hides some of it are not listed.
Paste directly into the empty bottom command bar to make cards of what you copied. On phones, the bar and review form stay above the keyboard while you edit. A picture (a screenshot, or an image copied from a page; PNG, JPEG or GIF) offers New picture card in …: a card with the picture filling it, added at the end of your usual stack (as for note), or choose another stack…. Type while it waits to name the card; otherwise it is called Picture. The picture is shown beside the choices. Two lines or more offer Add N cards, one card per line named by it (up to a hundred), or Save as one note, named by what you type or by its first line. A web address, pasted or typed, offers Save link, a card named after the site and page that holds the address, Open link in a new tab, and, for a link to one of your cards, Go to this card. New cards open with an Undo that takes them out again. Pasting into words already typed, such as after note, stays plain text.
Select some text on the page (or in a field) before you open Dealer, and the empty box starts with rows for it: Search for “…” puts the words in the box, New card from the selection opens the review form with it as the card's text, in your usual stack, and a row counts its words and characters (with the reading time for longer passages); Enter copies the word count. On a card, type word count for Count words on this card, which counts the text of its fields, including what you have typed and not yet saved.
Insert while you type. In a card's text field, type [[ and Dealer opens to Link to a card: type part of a card's name and choose it, and the [[ becomes a link to that card, such as [Pancakes](/stack/…/card/4), which a field with Show Markdown on shows as a link (a rich text field gets the link itself). Press Cmd + K while the caret is in a field for the other things to put there: Link to a card…, today's date (2026-09-24), the date in words, the time, and your snippets. What goes in lands where the caret was, is saved like typing, and Undo takes it back. Styled paragraph fields keep [[ for script notes; use Cmd + K there instead.
Snippets are bits of text you keep to insert: a sign-off, an address, a checklist you start every card with. Type snippet Sign-off: Thanks, Alex in Dealer and choose Save snippet (the name before the colon is optional), or select text on the page, open Dealer and choose Save the selection as a snippet. In a snippet, {date} and {time} become today's date and the time, and {cursor} is where the caret lands. Away from a field, typing a snippet's name offers to copy it. To delete one, select it and press Cmd + Backspace twice. Snippets are kept with your account, up to a hundred, and only you see them.
: goes to a part or a script handler. On a card, it lists the card's fields, buttons and widgets, by name and with the start of their text, and, on a stack whose scripts you can edit, every handler in its scripts: each on, def, init and behavior line of the stack script, the backgrounds, the cards and their parts, with where it is and its line. Type to narrow them, such as :mouseUp or :Title. Choosing a part scrolls to it and puts the caret in a field (in Edit mode, it selects the part and opens its inspector). Choosing a handler opens the card that holds the script in Edit mode, with its script editor open and the handler's line selected, ready to change or to set a breakpoint on. You can also type go to part and choose Go to a part or handler.
^ lists every keyboard shortcut in Wyldcards, with its keys, without leaving the page (choosing Keyboard shortcuts does the same). Type after the ^ to find one by what it does, by its keys or by where it works, such as ^undo, ^shift or ^storyboard. Choosing a shortcut opens the Keyboard Shortcuts page searched for it; the last row opens the whole page.
When you use an input method to compose characters, its confirmation and candidate keys stay with the input method. They do not choose a Dealer result, submit its review form, save Markdown, or leave Focus. After composition finishes, use the usual shortcuts to run those actions.
Rows that switch something on and off say when it is on: Text only, Focus and Cards only show On, and the theme you are using shows Current, so you can see the state before you choose. In the iPhone, iPad and Mac apps, Cards Only and As Card, As Text and As Markdown are in the View menu.
Every stack feature. In a stack, Dealer finds everything the stack can do, not just the buttons on the page in front of you: its views (Card overview, Text outline, Pages…), tools (Paint, Draw, Markdown editor, Code editor), exports (backup, ebook, card files) and each section of its settings (Card size, Book settings, Collaborators, Access passwords…). Search by name or by what you want to do — ebook finds Export as EPUB, isbn or cover finds Book settings, pdf or manuscript finds Pages, password finds Access passwords — and they are listed under Stack features once you type. You only see the ones you may use: people who can change the stack get the editing tools, and the stack's owner its settings. The iPhone, iPad and Mac apps search the same list, opening their own screen for a feature when they have one and the web page when they do not.
Cmd + Shift + K repeats the last command you chose in Dealer without opening it, using the newest one this page offers: switch Text only back on, for one. A command that deletes or discards something is never repeated this way; choose it in Dealer instead.
When Dealer is empty on a wide screen, a short hint suggests a search prefix; choose it to start that search. On a phone, the prefix buttons stay at the bottom of the results.
Speak instead of typing. Open Dealer and choose the microphone beside Done above the results, then say what you are looking for; the words appear as you speak and the results follow them. While it listens the search says Listening… and the microphone breathes softly; once it picks up your voice it fills in green, says Hearing you…, and a ring around it grows and shrinks with how loud you are, so a muted or wrong microphone shows before any words arrive. Start with open, run, go to, show or switch to to choose the best match when you stop: “open Trash”, “run Card overview”, “go to Recipes”. Anything else stays a search to pick from. A command that deletes or discards something is only selected, for you to choose yourself. The browser asks once to use the microphone; the button shows only where the browser can recognize speech (Chrome, Edge and Safari), and typing takes over from it at any time. The iPhone, iPad, Mac and Android apps have the same microphone in their Dealer.
Typing part of a stack's name opens that stack directly, including stacks shared with you. Choosing New stack creates an untitled blank stack immediately and opens it for editing. The launcher also includes common destinations such as importing a stack, Search, My stacks, Archive, Customize home, Help Center, Keyboard shortcuts, and appearance settings. Choose Find a stack to browse your active stacks by name, or New card in a stack to pick any stack you can edit; it creates a blank card and opens it in Edit mode. Inside either list, press Backspace on an empty search, or click the label beside the search box, to return to the full command list. While viewing a stack, New card creates one immediately after the current card. Other available stack actions include Find, Edit and Card list. Stack actions can be found by typing their names, including commands from the former More menu: History, Export, Paint, a card size, and the rest. A menu item that asks for words, such as Invite by email, opens its menu with the cursor in the field. The available actions reflect your sign-in status and enabled features.
In a stack, the Views group opens every way to look at it: All cards, Read as cards (with rows to read them across or down, and for editors to arrange them), Card overview, Text outline, Table, Read as text and Pages (for a stack with a styled paragraphs field), Focus workspace, Focus writing, Review scripts and History, each only when you can use it here. They work from the stack's other views too, so from Card overview you can go straight to the Text outline, at the card you came from. The launcher also opens the card Navigator and Stack settings when available. Global commands include Trash, Account settings, and API tokens. Use Up and Down Arrow or Control + N and Control + P to select a result (hold Alt, or Option on a Mac, to number the first nine, and press a number with it to run one), Page Up or Page Down to jump through a longer list, Home or End for the first or last result, and Enter to open it. Tab opens a selected card's or stack's actions; otherwise Tab and Shift + Tab move focus through the controls. Use the clear button or Esc to clear a root search. Inside a workflow, Esc goes back one step; from an empty root search it closes the launcher and restores focus. Cmd + K also closes it.
Importing from Dealer. Type import to see every way in. Import a file… picks a file and goes straight to its preview: a backup (.json or .zip), Markdown or Word opens the stack import preview. You can also drop a file onto Dealer, or paste a copied file into its search box; folders and several files at once belong on the Library. In a stack, Import a script opens the Import panel in Read's Pages tab for a Fountain, Final Draft, PDF, Word or EPUB file when the card has a styled paragraphs field.
Offline. With no connection, Dealer says so under the search box. Commands that need the server stay in the list, dimmed and marked needs a connection; choosing one tells you rather than failing. Card search then looks through the cards you opened lately in this tab and the stacks kept on this device (see Keep Offline), and those that open offline come first. Everything that works on the page itself, such as its buttons, views, themes and : parts, works as usual.
To move Dealer out of the way, drag its search row (anywhere but the search box and buttons) to another spot; it opens there next time on this device. Alt + Shift + Arrow keys nudge it, and double-clicking the search row or Alt + Shift + 0 puts it back at the top of the window.
Dealer and the workspace. The command bar keeps results above its input and leaves the rest of the page usable. Choose Done, press Escape, or click outside to close the results. Cards has its own panel on the card workspace; Focus hides the surrounding controls. On pages with a floating Dealer, such as the public home page, a wide window still offers Dock and Undock.
The command bar takes priority over a previously saved dock position when you move between app pages. Search stays available in the same place.
On a phone, the command bar stays at the bottom and its results scroll above it. On pages without the command bar, Dealer opens as a sheet with a Done button.
AI assistants and browser agents can use the launcher too: every command has a stable ID and the launcher can be listed, searched, and run from a script. Workflows add the modes actions, stack-actions, rename, capture, capture-confirm, move, move-confirm, and widgets. The dialog also reports data-scope and data-local-only; workflow commands use flow.… and destinations use destination.{stackUid}. See Browser agents & accessible editing.
Find a Feature
Features are found in Dealer. Press Cmd + K and type ?, or choose Help > Find a feature… in the header, then look up any feature by name or by a related word, such as "epub", "shuffle", or "speaker notes". Before you type, ? lists the topics you opened most recently on this device, marked Recent, and then topics for the page you are on, for example Edit Mode and Fields, Buttons & Widgets while editing a card, or Pages on the Pages page. Without ?, Dealer still shows a few matching help topics under your commands once you type three letters, and More help for … lists the rest. Select a topic and the panel beside the results shows its first paragraphs, so a quick question is answered without leaving the card; press Enter for the whole topic. After ? and a word, the last row searches the full text of every guide in the Help Center, and when nothing in Dealer matches, Search Help does the same. In the iPhone, iPad, Mac and Android apps, Help in the menu (or typing ? in Dealer) searches the same topics.
Help is also where you are: a small ? beside a heading, at the end of the edit bar's menus (Layout, Card, Part, Scripts, Stack and the rest), in Share and the editing menus, in the part inspector, the Paint and Draw tools, Find and each section of Stack Settings opens the topic that explains it in a new tab, so the card you are working on stays as it is.
Results show the best matches first with a one-line description. Close spellings still match, so "scrpt" finds the Scripting guide. Press Enter to open the selected topic and Up and Down Arrow to move through the list. Open help center stays at the end of the list, and the Help Center's own search looks through the full text of every guide.
The Help Center opens on a search box: press / to jump to it, type a few words and press Enter to open the best match, or use the Down Arrow to move through the results and the topic buttons above them to narrow the list. Below it are four common tasks and the topics grouped as Get started, Build cards, Find and organize, Write and present, Share and sync, and Scripting and automation; See every topic A to Z lists them all. Each topic opens as its own page, with its group's topics beside it, On this page for its sections, Related topics, and Previous and Next at the end. A topic's address, such as /help#editing, opens it directly.
Marked Cards
A mark belongs to the card, so everyone who can edit the stack shares it: tonight's songs, scenes to revise, or chapters ready for another pass. In Edit mode, tick Marked in the edit bar's Card menu; untick it to remove the mark. In Browse, press Shift + M to mark or unmark the card you are on. When a stack has marked cards, the card navigator's Marked button lists them, Shift + → and Shift + ← step through just them, a tick on the toolbar's scrubber shows where each sits, and Pages (Marked cards only) can be narrowed to them. Scripts can do the same with wyldcards.goMarked('next') or wyldcards.goMarked('prev').
Card Links
To make a button open another card without a script, select the button in Edit mode and choose its destination: a specific card, the previous card in stack order, or a random card in the same stack. Specific-card pickers include every card in stacks you can open, and follow the selected card if you rename or move it. This also applies to card-link fields, card previews, and card shortcuts. Random buttons do not filter by tags because cards do not have tags. For a simple branch, choose a field, its exact matching value, and a destination under When field equals; when it matches, that destination wins, otherwise the button's chosen destination is used. A field can also use Link to a card from its Style menu. When a card has incoming links, a Links here row names the cards that point to it. To connect cards without choosing a direction, open Related cards in Edit mode; the same relationship appears on both cards. The iPhone, iPad and Mac apps show Links here under the card and edit Related Cards too.
Stack Previews
Wherever a stack is listed, you see a picture of it: All stacks (its grid, list and columns) and the Wyldcards apps. The picture is the stack's cover card, its first card unless you choose another: on a card of your own stack choose Use as stack cover in Dealer while browsing (or tick Stack cover under Tools → Card in Edit mode), or pick one under Cover card in Settings. In the iPhone, iPad and Mac apps, tick Stack Cover in the Card menu (or run Use as Stack Cover from Commands). A folder shows its first three stacks laid on each other. Classic cards are pictured in the theme you are using, light or dark.
Peek looks through a stack without opening it: move the pointer across its picture and the picture turns through its cards, with the card's number and name along the bottom; on a touch screen, swipe across the picture. Rows without a large picture show a small card beside the row instead. Quick Look shows a stack's cards at full size: focus a stack (an All stacks tile or row, press Tab to reach one) and press Space. Then ← and → move between cards, Home and End jump to either end, Return opens the card, and Space or Esc closes it.
In a stack, the Cards panel starts with a compact picture beside each card's number and name. Its image icon switches thumbnails on or off, and remembers the choice in Browse and Edit. Pictures also appear where you would otherwise have to guess: the first cards of a file in the import preview, each saved version in Version history, and in the Wyldcards apps.
A published stack sends a picture with its links, so a chat, a post or a message shows the card itself instead of the Wyldcards icon, and it has a page of its own at /published/your-stack/about (the About link on its cards): the cover, what the stack is about, and its first cards, with a button in. Share that address when you want the link to say what it opens.
A picture shows what the person looking may see and nothing more. A role's hidden fields and cards are left out of its pictures, a stack still behind its password shows its icon instead, and a public picture holds only public cards, without uploaded images or button icons (as the public reader does). If the cover card is one someone may not see, their picture is the first card they may see. Links shared with a password never send a picture. Pictures are drawn from what is saved on the card, words, boxes, pictures and drawings; no script runs to make one, so anything a script fills in only when the card opens (a list worked out on openCard, say) is not in the picture, and widgets show as a panel saying what they are.
Paint Tools
Every card has a picture behind its parts, and so does every background: HyperCard's paint layers. Choose Paint in Dealer on a card of your own stack to open the tools over the card. Choose Card or Background (a background picture shows behind every card that uses it), then a tool: pencil, brush, eraser, line, spray can, rectangle, round rectangle, oval, bucket fill and text. Shapes can be Filled with a colour or one of the patterns. Select drags a rectangle and Lasso draws around a piece; drag either to move it, or press Delete to erase it. FatBits zooms in on the pixels. Undo steps back, Save keeps the picture (Done saves too), and Clear erases the whole layer.
Pictures appear on the storyboard, in previews and on public pages, and travel in an exported stack. Nothing on the picture can be clicked, so a script cannot be attached to it; put a transparent button over it instead, as HyperCard did.
Draw Tools (vector shapes)
Where Paint changes pixels, Draw keeps objects: shapes that stay selectable and sharp at any size. Choose Draw in Dealer on a card of your own stack. Choose Card or Background (a background drawing shows on every card that uses it), then a tool: rectangle, round rectangle, oval, line, arrow, polygon and curve (click each point; click the first to close the shape, or press Return to finish), pen (a freehand stroke, smoothed into a path) and text (click, type, then click away or press ⌘Return; click words already there with the Text tool, double-click them, or select them and press Return to change them). While you type, ⌘B, ⌘I and ⌘U make the words bold, italic or underlined, ⌘⇧> and ⌘⇧< make them bigger or smaller, and the palette's text buttons style them without ending your typing (Ctrl on Windows). Hold Shift for a square, a circle or a line at 45°.
Select clicks a shape, Shift-clicks more, or drags over an empty spot to take in several. Drag a shape to move it, a square handle to resize it (Shift keeps its proportions) and the round handle above it to turn it (Shift snaps to 15°). With several shapes selected, the handles scale and turn them together as one group; when the group holds text or a turned shape, only the corners pull, so everything keeps its proportions. Hold Alt as you start dragging a shape to leave it where it is and move a copy. The shape under the pointer is outlined, so you can see what a click would take, and with the canvas in focus Tab and ShiftTab step through the shapes one by one, naming each. While you move, resize or draw, smart guides pull the shape onto the edges and middles of the other shapes and of the card, and a dashed line shows what it lined up with; hold Alt to place it freely. Double-click a path to move its points: double-click the path again to add one, and double-click or Alt-click a point to remove it. To Path turns a selected rectangle (with square corners), oval or line into a path that looks the same, whose points you can then move. Double-click text to change it. On a touch screen, two quick taps do what a double-click does, and finish a polygon or curve. Flip ↔ and Flip ↕ mirror the selection (several shapes flip as one; text moves but still reads forwards). Copy Style keeps the first selected shape's colours, line, arrows, opacity and text style, and Paste Style gives them to the selected shapes. Line and Fill colours, Width, Dashes, Arrows, Opacity and the text's font, size, bold, italic, underline and alignment apply to what is selected and to what you draw next. Text aligns left, centred or right: each line lines up on the point you clicked, and changing a selected text's alignment keeps it where it is on the card. Card ink draws lines and text in the card's own text colour, so a drawing reads in a light and a dark theme alike; pick a Line colour to fix one instead. Front, Forward, Backward and Back restack shapes, Snap to grid lines them up on a grid instead of the guides (the arrow keys then move a whole grid square; hold Alt to place one freely), and copy and paste carry shapes from one card to another.
Undo and Redo keep a hundred steps, Save keeps the drawing (Done saves too), Clear removes every shape on the layer, and Export SVG downloads the layer as a file any drawing app opens. Drawings sit over the painted picture and under the parts; they appear on the storyboard, in previews and on public pages, travel in an exported stack, and merge along with their cards. A screen reader is told the words in a drawing. Like the picture, a shape cannot be clicked while browsing; put a transparent button over it. The keys are in the shortcuts sheet.
Mouse Messages & Swipes
A card's scripts hear the mouse, a finger or a pen on its parts, and the swipes across it. Everything is measured in card pixels, the numbers the inspector shows, from the card's top left — however the card is scaled to fit the window.
Mouse messages
In Browse, a part hears mouseDown when it is pressed, mouseStillDown about ten times a second while it is held, and mouseUp when the press ends on the same part — as in HyperCard, letting go somewhere else sends nothing. It hears mouseEnter when the pointer arrives over it, mouseWithin about five times a second while it stays, and mouseLeave when it goes: on mouseEnter wyldcards.show('hint') and on mouseLeave wyldcards.hide('hint') make a hover hint. Pressing bare card sends mouseDown and mouseUp to the card. Every one carries event.detail.part (the part's name), .x and .y in card pixels, and .shift, .option and .command for the keys held; like other messages they pass on to the card, background and stack scripts. wyldcards.mouse() answers {x, y, down, part} at any moment. A finger has no hover: touch sends mouseEnter as it lands and mouseLeave as it lifts.
Swipes and long presses
In Browse, swiping sideways across a card, or two fingers sideways on a trackpad, turns it and keeps the next card in Browse. The card follows your fingers, and the card coming next slides in beside it, the way pages turn in an app; a round arrow at the edge you are uncovering names that card, or says the stack wraps around to it. Its ring fills as the swipe nears far enough, about a third of the card's width; once the arrow turns solid, letting go turns the card however slowly you dragged, and both cards glide the rest of the way. Stopping short lets the card spring back, and so does flicking it back the way it came. (Until the next card has loaded, or with reduced motion, the card only leans after your fingers and the next one simply appears.) Each swipe is a message too: swipeLeft, swipeRight, swipeUp or swipeDown goes to the part the swipe began on, or to the card on bare card, and passes on to the background and stack. A quick, short flick counts as well as a long swipe. on swipeLeft halt keeps the card from turning, so a flashcard can sort itself — on swipeRight halt the event then wyldcards.setField('Pile', 'Known') then wyldcards.go('next'). Up and down swipes are only sent when nothing scrolled, so a card taller than the screen scrolls as usual. On a card that fits the screen, a flick up opens the card navigator and a flick down puts it away; on swipeUp halt keeps it shut, so a game can have the flick for itself. Fingers and pens send all four; a two-finger trackpad swipe sends swipeLeft and swipeRight in a stack of more than one card. Holding a finger or pen still on a part for half a second sends longPress; halting it keeps the browser's own menu from opening after it. While a finger or pen drags across a card, swipeMove goes to the same part over and over with how far it has come, and swipeEnd follows when it lifts, with event.detail.direction — 'left', 'right', 'up', 'down', or null when the drag wasn't a swipe. A script can follow the drag itself that way — a slider, a scrubber, a card that tilts — and on swipeMove halt keeps the card from leaning while it does. A drag that turns out to be a scroll goes quiet. Every one of these carries event.detail.part, .x and .y (where it began, in card pixels), .dx and .dy (how far it went, right and down being positive), .distance, .duration in milliseconds, .speed in pixels a second, .via ('touch', 'pen' or 'trackpad') and .fingers — so on swipeLeft if event.detail.speed > 1500 wyldcards.go('last') end tells a flick from a slow drag. In the iPad app, an Apple Pencil's double-tap and a Pencil Pro's squeeze send pencilDoubleTap and pencilSqueeze (see the Apple apps). Fields you can type in, controls and widgets keep their own drags and presses. The iPhone, iPad and Android apps send the same messages with the same details, to the part the gesture began on, and halting a sideways swipe keeps the card there too; the Android app reports a mouse as 'mouse'. The Mac app, like a trackpad on the web, sends swipeLeft and swipeRight.
Getting around a stack
The scrubber. In Browse on desktop, the line in the Cards panel represents the whole stack: the dot is the card you are on, the number beside it says which of how many, and a small tick marks each marked card. Point along the line to see the name and picture of the card there; click, or drag and let go, to go to it. With the line focused, Home and End go to the first and last card and Page Up and Page Down move a tenth of the stack. On smaller screens, use the card-number field above the card or swipe between cards; the Cards tray keeps its space for the card list.
Peek before you turn. Rest the pointer on the previous or next card arrow in the toolbar to see the picture and name of the card it leads to. The iPad and Mac apps peek the same way.
Type a card number. On a card, when you are not typing in a field, type a number and press Return to go straight to that card; while you type, the note names the card and shows its picture, so a wrong number shows before you go. Escape lets it go. A stack whose scripts listen for keys (a game, a drill) keeps the number keys for itself; Dealer's #12 works there too.
Marked cards. Shift + → and Shift + ← go to the next and previous marked card, round the stack, skipping the others. If you can edit the stack, Shift + M marks or unmarks the card you are on, with an Undo.
With a keyboard in the apps. The iPad and Mac apps take N for a new card, G for the Storyboard, Shift + M to mark and a typed card number the same way, while the card has focus rather than a field.
Card grid. Press G or choose Card grid in Dealer to see every card as a picture over the one you are on. Type to narrow it by name, number or the text on a card, or choose Marked for the marked cards; opened from the navigator, it starts narrowed as the navigator was. The arrow keys move and Return or a click opens a card. Escape closes it. In the iPhone, iPad and Mac apps the card grid is View ▸ Storyboard (or G with a keyboard); tap a card to open it.
If you can edit the stack, right-click a card in the grid, choose its ⋯, or press Shift + F10 for Open in new tab, Mark, Rename, Duplicate, Hide, Copy, Cut, Paste after and Delete, the same commands as the navigator's card menu. Shift + M marks or unmarks the card you are on in the grid. The image icon in the Cards panel toggles compact thumbnails beside card names in both Browse and Edit.
Two-up. Two-up in Dealer shows the card you are on with a picture of the next beside it, like an open book, and the arrow keys and toolbar arrows turn two cards at a time. Click the right-hand card to open it. It needs a window wide enough for two cards; a narrower one shows one card as before, and Two-up comes back when the window is wide again. The choice is kept in this browser. The iPad and Mac apps have Two-Up under View.
Found words. Open a card from Dealer's card results, or filter the card navigator, and the words are highlighted on the card; a text box holding them is outlined. A bar above the card says how often they are here and on how many cards, with Previous and Next for the other cards that have them. × or Escape stops showing them and clears the navigator's filter.
Round the stack. Turning past the last card goes back to the first, as HyperCard does, and a note says Back to the first card so it is plain the stack started over; before the first card, ← goes round to the last. Scripts that step with go next stay quiet.
Pick up where you left off. Opening a stack again from the Library, Home or Dealer takes you to the card you were last on, with a note naming it and Start from card 1 if you would rather begin again. A stack set to open in the editor or as a scroll of cards still opens that way.
One background at a time. In the card navigator (Cards), chips under the filter name each background the stack's cards use (when there is more than one). Choose one to list just its cards; it works with the filter and Marked, and Escape clears them all. The apps' Card Navigator has the same chips.
Protect Stack & Card Info
Protect stack, in a stack's settings, is HyperCard's dialog of the same name. Can't modify makes the stack read-only for everyone, you included, until you clear it. Can't delete keeps it out of the trash. Private access makes the stack password gate you as well as your collaborators. The unlock page, and the iPhone, iPad and Mac apps, allow ten tries in ten minutes for each person and stack; after that, wait a few minutes. Most anyone can do here, you included (HyperCard's user level) sets the most anyone may do: Browsing reads, as a viewer does; Typing types into fields, as a writer does; Authoring edits the layout and Scripting edits scripts too, both editor levels. Nobody gets more than their own access, so at Typing an editor can only type. Scripts still run at every level, and the script editors appear only at Scripting.
Each card has two flags of its own in the edit bar's Card menu, HyperCard's Card Info: Can't delete, which makes Delete card refuse it (also from the API), and Don't search, which keeps it out of Find and Search. A field can carry Don't search too.
Passkeys & Sign-in
Sign in with your username or email and password or, once you have added one, with a passkey (Touch ID, Face ID, your device’s PIN, or a security key). Choose Sign in with a passkey, or click the username field: browsers that support passkey autofill list your saved passkeys there, and picking one signs you in. Closing the passkey prompt just returns you to the sign-in page; if a passkey is not accepted the page says so, and your password still works. Use Show password to check what you typed; a Caps Lock reminder appears when your keyboard reports that it is on. After submitting your password, Signing in… confirms your request is in progress. If the browser reports that you are offline, reconnect and try again. If a passkey prompt cannot start because the service is busy, wait a minute and try again. Forgotten your password? Choose Forgot password? on the sign-in page to request a reset email. The reset page names your account, so your browser or password manager offers to save the new password under the same login it already keeps for this site.
Manage passkeys from the Passkeys tab of Account settings in the user menu.
Account settings, in the user menu, is one page with tabs for your Email, Password, Two-step sign-in, Passkeys, Teams, API tokens and Your data. On a tablet or a wider window the tabs run down the left side and the chosen one opens beside them, and Stack Settings does the same with General, Look, Sharing and Advanced; on a phone they sit in one row above that you can swipe sideways, under the page's title bar, with the tab bar along the bottom as on every other page. The user menu itself keeps only who you are signed in as, Account settings, the appearance, Install app, and Sign out; the places that used to be listed there are in the Library and in Dealer (Cmd + K).
Use the arrow keys to move through the user and Help menus, Home or End to reach the first or last item, and Enter to choose it. Escape closes the menu and returns focus to its button. Theme and density choices report which option is selected; High contrast reports whether it is on.
Add a passkey suggests a name from your device and browser; change it to whatever you will recognise. Each passkey shows when it was added, when it last signed you in, and its kind: Synced (kept by iCloud Keychain, Google Password Manager or a password manager, so it works on your other devices), Security key, or This device only. Rename changes a passkey’s name without affecting how it works. Delete asks first, and warns you when it is your only passkey — keep a second passkey or a password you know, so losing one device never locks you out. A device that already holds a passkey for your account will not add a duplicate.
The browser says no passkey is saved? A passkey is kept by the password manager that made it, and only that one offers it: a passkey added in Chrome or Google Password Manager won’t appear in Safari, one in iCloud Keychain won’t appear in Chrome on Windows, and a This device only passkey stays on its device. The Passkeys page names the password manager beside each passkey when it is known. Sign in with your password in the browser that came up empty, then add a passkey from there — an account can have as many as you like. A passkey marked Made for another address was added when this site lived there; no browser will offer it here, so delete it and add a new one.
Your password manager keeps up by itself. Right after you sign in with a password your browser or password manager filled — Safari with the Passwords app, or Chrome — it may quietly save a passkey for your account, with no prompt, so next time you can sign in without the password; it appears on the Passkeys page named after your device and browser. That happens only once per sign-in, and only when your account has no passkey yet. When you delete a passkey here, or someone signs in with one that was already deleted, browsers that support it are told, so the password manager stops offering a passkey that can no longer work; they are also told your account's current name. And Change Password beside a saved password in the Passwords app or Chrome opens the Password tab of Account settings (after you sign in, if you aren't).
Two-step sign-in
With two-step sign-in on, signing in with your password also asks for the six-digit code an authenticator app shows (your password manager, the Passwords app, Google Authenticator or Authy), so someone who learns your password still can't get in. Signing in with a passkey doesn't ask: a passkey already needs your device. API tokens, and a reading app catalog address, keep working as they are.
Turn it on from the Two-step sign-in tab of Account settings: choose Set up two-step sign-in, scan the QR code with your app (or type the setup key), then enter the code it shows. You then see ten recovery codes, once — keep them somewhere safe. Each signs you in one time instead of a code if you lose your phone. The same tab makes ten new ones (the old ones stop working) and turns two-step sign-in off; both ask for a current code. Turning it on signs out the other browsers that were remembering your sign-in.
A code that doesn't match can be tried again; after ten wrong codes in fifteen minutes, wait before trying more. The code step has to be finished within five minutes of the password, or you start over. The iPhone, iPad and Mac apps ask for the code too: after your password, type the code from your app, or choose Use a recovery code. A passkey signs you in there without one.
In the apps, two-step sign-in is under Account (on a Mac, Settings, Account): Turn On Two-Step Sign-In shows a QR code to scan with another device, the setup key to copy, and Add to Passwords to set it up on the same device; enter the code it shows, then save the recovery codes. The same place makes new recovery codes and turns it off, which asks for your password and a current code.
Download everything & delete your account
The Your data tab of Account settings has Download everything: one zip with a folder for each stack you own (stacks in the Trash aren't included). Each folder holds the stack's cards as stack code (.wyldcards.xml, the format of the Code editor) and as Markdown, a full .wyldcards.json backup that Import turns back into the same stack, and the pictures you added (and any recordings kept from before). README.txt explains the files and manifest.json lists your account and every stack.
Delete account…, below it, deletes your account and every stack you own, including the Trash, for good. The dialog says how many of your stacks are shared with other people or published — they disappear for everyone — and offers the download first. Confirm with your password (if you sign in with a passkey, typing delete works too), plus a code when two-step sign-in is on. Stacks other people shared with you stay with them; you just leave them. You are then signed out and back on the Wyldcards home page. The only administrator can't delete their account until someone else is an administrator too.
In the iPhone and iPad apps, Your Data… in the account menu downloads the same zip or deletes your account; on the Mac they are in Wyldcards ▸ Settings ▸ Account. Deleting asks for your password (or typing delete if you sign in with a passkey) and your two-step code when that is on, then signs the app out. Both need a connection.
Install as an App
On a phone or desktop browser, use Install app in the user menu (or your browser's "Add to Home Screen") to run Wyldcards as a standalone app. The install guide keeps keyboard focus inside it; press Esc or choose Got it to close it. Once you're signed in, the header's sync status shows whether changes are Saved, Syncing, waiting, offline, or need attention. While you browse a card, a small note in the top corner of the card area appears only while that card's changes are saving, waiting, or need attention, and fades once they are saved. When a connection drops while a card is open, text fields, checkboxes, lists, and checklists save their latest value on this device and sync automatically when you reconnect. Select the status when changes are waiting to retry immediately. Moving cards, changing layouts, uploads, sharing, and deletes still need a connection, so they cannot replay unexpectedly later. If you were signed out while changes waited, the status says Sign in to sync; they are sent once you sign in again.
On a phone, Library, Search and account pages use the same bottom Dealer bar as the card workspace. Open the account menu from your avatar at the top; tap outside it to close it. Touch and hold a card to open its actions as a bottom sheet. Touch and hold (or right-click) the installed app's icon for shortcuts to Stacks, New stack, and Search. A shortcut or link opens in the existing app window. The browser's status-bar color follows the page's Light or Dark background when it loads, when appearance changes, and when you return to a page.
Keep a Stack Offline
On an unresponsive connection, saved cards, scripts, styles, and pictures fall back to their device copies after about eight seconds. Opening a page that is not saved shows the offline page after the same wait. That page checks the connection immediately, then every fifteen seconds while visible. Retry Connection shows when a check is running and becomes available again if the server cannot be reached; you can open a saved stack while waiting.
To open a stack with no connection, choose Keep offline in Dealer while you are connected. Wyldcards downloads every card of the stack, with its pictures and paint layers, to this browser. The command then reads Kept offline, and choosing it shows how many cards are on the device and when they were saved, with Update Now and Remove from This Device. A kept stack keeps itself current while you are connected: opening a card refreshes its copy, and the whole stack downloads again when cards are added or removed, or after a few hours.
Recently opened stacks are saved too. When you are signed in and open a card while connected, Wyldcards quietly saves that stack to this browser a few seconds later, so the stacks you used last also open without a connection. A stack of up to 300 cards is saved whole; for a longer one, the 60 cards around the card you opened (30 on a mobile network). The last eight stacks you opened stay; opening another makes room by removing the one you opened longest ago. Stacks you chose to Keep Offline never make room that way and stay until you remove them. Nothing downloads by itself when your browser's data saver is on, on a very slow connection, or when the device is short of space. On a recently opened stack, Keep Offline… says how much of it is already saved and keeps the whole stack for good; Remove from This Device removes it and stops it being saved again until you choose Keep Offline.
Without a connection, open a kept stack from its bookmark, its Home Screen icon, or the Kept offline and Recently opened lists on the "You're Offline" page, which also reopens the page you wanted as soon as the connection returns. Opening your stack list with no connection shows the same lists, each stack opening at the card you had open last. Previous, Next, and the card navigator move through the kept cards. In Edit, double-click a text field to type directly on the card. The formatting row keeps its space above the card so selecting a field does not move it between clicks; opening part settings needs a connection, and does not interrupt typing. The banner says you are reading the copy kept on this device, and what you write in fields, checkboxes, lists, and checklists waits on the device, stays visible as you move between cards, and is sent when you reconnect. These wait on the device too, and are sent in the order you made them: a card's name, mark and settings; the stack's name; moving cards in the card's outline panel, or in a card list or storyboard that was open when the connection dropped; Delete card (the card says it goes to the Trash when you reconnect, with Keep this card to change your mind); a Paint or Draw picture you were working on when the connection dropped (the latest one for each layer, up to 8 MB); and drawing widgets. Kept copies show the old order and pictures until you reconnect, when the stack downloads again. If someone else changed the same field meanwhile, your draft is not forced over theirs: on the card, the same Keep mine / Load theirs choice as a live conflict appears, and elsewhere it waits under Review saved changes, named by field, card, and stack, with both versions to choose from. A change to a card someone deleted meanwhile is dropped, and the banner says so. Pages that are not kept say so instead of doing nothing. Adding or duplicating cards, changing parts, text flowing onto the next card, icons, moving cards between stacks, and sharing still need a connection: try one offline and a notice says so, and your work stays where it is. If a connection is too slow to answer, or its image service has an error, a kept card and its saved pictures open from their copies; choose Open the live card in the banner for the current version.
Copies belong to the account that made them. Signing out, or the sign-in page opening after a session ends, removes every kept and recently opened stack from the browser; edits still waiting are kept for your next sign-in. Keep Offline needs a browser that supports installed web apps; the iPhone, iPad, and Mac apps have their own Keep Offline in each stack's menu.
Browser agents & accessible editing
The Cards panel is a named region containing the stack's card list. Its current-card link is identified to assistive technology. Each reorder grip is associated with its keyboard instructions: focus the grip and press the up or down arrow to move that card.
Open a card and choose Edit, then click a part on the card to select it (or choose one from Selected part). A floating action toolbar appears directly above the selection for quick duplication, layer reordering (bring to front / send to back), and deletion. The line beside the selection says what you can do with it: drag to move, drag the corner to resize, the arrow keys to nudge (Shift for bigger steps, Alt for one pixel), and Delete to remove it.
While you edit, a label above the card says Editing this card, with Done beside it to go back to using the card; painting and drawing say so the same way, and their Done saves the picture first. The scroll stack ends with Done too. Undo and Redo at the end of the edit bar (or Cmd/Ctrl + Z and Shift + Cmd/Ctrl + Z) take back moves, resizes, deleted parts and text you typed, one step at a time, as long as you stay on the card. Deleting a part asks nothing; a message offers Undo. Double-click a text field on the card to type in it without leaving Edit mode (Esc or Return finishes); double-clicking a list, checklist or rich-text field opens the card with that field ready to use. Outside Edit mode, double-click a locked text field, such as a caption, to open Edit mode with it selected. When something cannot be saved, a message at the bottom of the page says so.
Right-click menus: right-click a part or an empty spot on the card for the things you can do there, or hold a finger on it on a phone or tablet. In Edit mode a part offers Type in it, Edit script, Cut, Copy, Paste part, Duplicate, Bring to front, Send to back and Delete; with several parts chosen, Delete takes them all. An empty spot offers Paste part, Add field, Add button, Add widget, New card, Duplicate card, Select all parts and Done editing. Outside Edit mode, the card offers Copy text (on a field with words in it), Edit this part, Edit this card, New card, Previous and Next card, Mark and Copy link to this card. Right-clicking in text you can type in or have selected, or holding Shift as you right-click, shows your browser's own menu instead; outside Edit mode a held finger is left to the stack's scripts (longPress) and your browser.
Start editing by choosing + Field, + Button, or + Widget, then click a part on the card to open its inspector. Press Esc or choose Close in the inspector to clear the selection. In the inspector, fill X position, Y position, Width, and Height to arrange a part without dragging. Inspector changes save automatically after you stop typing or choose an option; use Save now to save immediately. Use Quick layout to place the selected part as a header, main area, column, footer, or fill the card; presets save immediately and can be undone. Text fields can use Arial, Times New Roman, Courier New, or the default sans-serif, serif, rounded, slab serif, condensed, or monospace font. Unlocked card fields save automatically as you type, in either mode. A locked text or multiline field reads as plain text on the card outside Edit mode, like a label or caption, and screen readers read it with the rest of the card; scripts can still change it with setField. Put a short locked text field just above a field or widget, or just to its left, and it becomes that part’s label: a screen reader announces the box by the caption’s words (“Serves”) instead of the name scripts know it by, on the card and on public links. A locked one-line text field set at 20 pixels or larger that labels nothing is read as a heading, so a reader can jump to it.
Browser agents can use the named Card workspace, Card list, and inspector regions. The workspace exposes data-stack-uid, data-card-id, and data-mode; each card surface is an article with a stable id, data-card-surface, data-card-id, and data-card-n. Parts and list rows expose stable data-part-id and data-card-id values. Primary workspace controls also expose data-agent-action, such as next-card, enter-edit-mode, add-field, and select-part; target them instead of button text or position. All stacks exposes data-home-screen, its layout and order, and a data-stack-uid on every stack in either view; controls identify their action with data-home-action or data-stack-action. Card numbers can change when reordered, so re-read the current links and page state after navigation.
Dealer for agents: the launcher is the quickest way for an agent to find and use any action. Open it with a control marked data-agent-action="open-dealer", or Cmd + K. The dialog is marked data-dealer and keeps its current data-mode, data-query, data-result-count, and data-busy current; the results list sets aria-busy while stacks or card matches are still loading, so wait for data-busy="false" before reading it. Every command has a stable data-command-id: app.… for destinations such as app.new-stack and app.help, stack.… for current-stack actions such as stack.new-card, theme.…, widget.{type}, open-stack.{uid}, new-card-in.{uid}, card.{stackUid}.{n} for card matches, search.everywhere, and page.{name} for a control on the current page. A page control styled as destructive, such as Delete, also carries data-command-destructive="true".
Agents that can run JavaScript can skip the screen: wyldcardsDealer.list() resolves to every command on the page, including stacks and page controls the empty launcher tucks away; wyldcardsDealer.search("words") opens the launcher on those words and resolves to the ranked results, card matches included, once loading has finished; and wyldcardsDealer.run("stack.new-card") runs a command by ID, just as choosing it would. Each command is reported as id, title, description, group, kind (link, action, submit, or menu for a command that opens a list of stacks), href, shortcut, and destructive. open(), close(), and isOpen() are there too. In a browser that supports WebMCP (navigator.modelContext, still experimental), the same three calls are offered to the assistant as the tools wyldcards_list_commands, wyldcards_search, and wyldcards_run_command. These run with the signed-in user's permissions and nothing more; confirmations such as moving a stack to the trash still appear.
Edit Mode
When typing directly in a card with an input method (such as Japanese, Chinese or Korean), candidate keys stay with the input method. Confirming or cancelling a candidate does not finish typing, switch modes, format the text or create another card. After composition ends, a separate Enter finishes a single-line field; Cmd/Ctrl + Enter or Escape finishes either a single-line or multiline field. Ordinary Enter in multiline text still inserts a new line.
Beside the card title, the mode indicator says whether you’re browsing or editing. Choose the pencil or check icon beside Editing / Browse (or press Cmd + E) to toggle between editing and browsing. Editable cards open in Edit mode by default.
When switching to Edit, scripts stop running, parts get handles, and you can drag them about, resize them, and click one to open its inspector: name, position, size, look, and script. Parts snap to an 8px grid and, when close, to the edges and centers of the card and other parts; a pink guide line shows what it lined up with, and a readout below the part shows its position and size while you drag. Hold Alt (Option) while dragging or resizing to place it freely, off the grid. The card workspace and inspector scroll independently on larger screens; on a phone, the workspace stays above the inspector so you can keep the card in view while changing its settings.
Just start writing: with no part selected, click an empty spot on the card and start typing. A text field appears right there with what you typed in it, and it grows as you write; press Esc when you are done. You can keep typing while the field appears: your letters, line breaks and Backspace corrections stay together. If the field cannot be added, existing text stays unchanged and a Retry notice keeps your words. Retry adds them at the same spot. Switching to Dealer, another field or another page while the field is being added pauses writing; those controls receive their own keys. Your pending words stay in this tab through Back and Forward. Return to the original card and choose Resume writing when the field is ready, or Retry if creation failed. Pressing Esc while creation is pending also pauses it. Dismiss discards the pending words; closing or reloading the tab warns before losing them. If the new field already contains other words, Copy text recovers your pending words without replacing them. Without a click first, it starts under the card's lowest part (or near the top left when there is no room). Undo takes the new field away. In Edit, highlighting Add text in Dealer draws a dashed outline where the field would go; highlighting a widget (in Add widget) draws it where it would land, at its starting size, and highlighting New card outlines the New card button and says which card number follows. Moving to another row or closing Dealer takes the outline away. From Browse, press T or choose Add text in Dealer, or double-click an empty spot on the card: Edit opens with a new text field ready, under what is already there or where you double-clicked. The iPhone, iPad, Mac and Android apps have the same Add Text and pending-write recovery.
Undo and Redo: every change you make to a card in Edit mode is one step you can take back — moving or resizing parts (a whole drag, or several selected parts moved together, is one step), arranging and spacing them, anything changed in the inspector (name, look, lock, hidden, script and the rest; typing in one inspector box is one step), adding, pasting, duplicating and deleting parts, and moving a part forward or back in its layer — along with field text you typed. Use the Undo and Redo arrows at the end of the edit bar; point at one to see which step it takes back, such as Undo Move Button 1. Outside a text box, press Cmd + Z to undo and Cmd + Shift + Z (or Ctrl + Y) to redo; inside a text box those keys undo your typing as usual. The Undo on a “Deleted” message takes back that same step. Undo keeps the last 100 steps for the card you are on, through switching between Edit and Browse; going to another card starts afresh. Paint and Draw keep their own Undo while they are open.
Grid, layers, locks and looks: tick grid in the Edit tools to draw the 8px grid parts snap to, with every fifth line stronger; it is remembered on this device. In a part's inspector, Forward and Backward move it one place in its layer — the card's parts always sit above the background's — while To front and To back go all the way; the card redraws at once. Tick Lock in place for a part you keep moving by mistake: it can still be selected and edited, its outline turns dashed, and dragging, resizing and the arrow keys leave it alone (the X, Y, width and height boxes still move it). Copy look remembers the part's Look — font size, colours, border and so on — and Paste look, which appears once something is copied, puts it on another part without touching whether that part is locked.
Live card: open Tools and tick Live card to see the card beside the one you are editing in Browse mode, with its buttons and scripts working. It reloads after each change you make and follows you from card to card; Reload loads it again and × hides it. It needs a window at least 1100 pixels wide. The switch is remembered on this device and is shared with the Live card button in the full-page Code editor and Markdown editor.
Click any part to edit it, including elements supplied by a template. Use the Field type menu in the Edit tools to add text, paragraph, rich text, number, date, email, checkbox, list, checklist, dropdown, link or card-link fields directly; select a field later to change its style in the inspector. Use Widget type to add an image, a gallery, a drawing, a card preview, or another specific widget directly; + Widget still adds the default widget when you want to choose its type later. Selecting a background part automatically checks on background; selecting a card-only part unchecks it. Background layout changes apply to every card using that background. Check on background before adding a part that all those cards should carry. Background fields still keep separate text per card unless marked shared.
Each card is a screen in its stack. New card below the card adds a blank card after this one. It shows Creating… while creating and opening the card; repeated button, shortcut or Dealer activation waits for the same request, including after Back. If you move to another control or page, start typing, or press Escape, you stay where you chose. When creation finishes, Open card opens the card already made; it follows that card if you reorder it. The notice survives in-app Back and Forward until you open the card or dismiss the notice. Dismiss keeps the card. Cards, the total and numbered navigation update in place, including when the stack grows from one card to two. Adding and moving cards wait for each other while their order is being saved. If creation cannot be confirmed, reload the stack and check Cards before trying again: a lost response can mean the card was already created. If opening fails after creation, use Open card to try opening it again without creating another card. In Edit mode, choose Tools → New card to start a Blank card with only the current background (the design this card shares with other cards). Choose Same layout to reuse the current card's parts and styling with a blank name, script, and card-specific field text, or Copy this card to carry its parts, text, and script into the next card. Shared background text stays shared. The shortcuts stay the same: Cmd + Shift + N makes a blank card and Cmd + Shift + D copies the current card.
Move to stack…, in the edit bar's Card menu, opens both stacks side by side, and the side panel widens to fit them. Choose the stacks with From and To — any active stack you own or a shared stack where you are an editor — and use ⇄ to swap the sides. You can also open this workspace from Dealer with Move cards between stacks. Drag a card by its grip and drop it where it should go in the other stack; a line shows where it will land, and holding Option / Alt as you drop copies it instead, and Esc cancels the drag. The arrow beside a card cuts it to the end of the other stack and the copy button leaves the original. Tick several cards (or the box beside a stack's name for every card shown) to drag them together or use Move selected and Copy selected; they arrive together in the order they had. Type in Filter cards to find cards in a long stack. The card you opened the workspace from is marked this card, cards that just arrived are highlighted, and each list keeps its place after a move. Cards bring their content and a separate copy of their background fields, buttons, and script. The destination stack’s card size and stack script apply. Moving the last card leaves a new blank card in the original stack using its existing background.
Move to new stack, just below Move to stack… in the Card menu (and at the top of the move workspace), starts a new stack of your own holding only this card and opens it there. Type the new stack's name first, or leave the box empty to name it after the card. The card brings its content and a copy of its background, just like any other move.
Duplicate makes a copy of the card you are on and puts it right after — the same parts, the same script, the same words (Cmd + Shift + D). It is how a second verse, a second scene or a second song starts from the first one instead of from nothing. The copy is named after the card it came from, and it does not inherit the card's mark. To copy a card into another stack instead, use Move to stack and its copy button, or hold Option / Alt as you drop it.
Select several parts by Shift-clicking them, or choose Select all parts in the edit bar's Part menu (Cmd + A) for every part on the layer you are editing. Drag any of them to move them together, or use the arrow keys: 8px a step, 32px with Shift, 1px with Alt. Click one of them to select it alone. Part > Arrange lines selected parts up by their left, center or right edges, or their tops, middles or bottoms; with a single part selected, it lines up with the card instead. Space across and Space down leave equal gaps between three or more parts, Same width, Same height and Same size match the part the inspector shows, and Center on card moves the whole selection to the middle without changing how it is arranged. Each arrangement is one step for Cmd + Z, and Delete removes every selected part without asking; Undo brings them back. In Dealer, Align parts left, Center parts across, Align parts right, Align parts to the top, Center parts down, Align parts to the bottom and Center parts on the card do the same to the selection, and highlighting one draws where each part would go before you run it. To change a card's place in the stack, Dealer has Move card earlier, Move card later, Move card to the start and Move card to the end (in Edit, when the stack has more than one card). Highlighting one says where the card would go, and outlines that row if the Cards panel is open.
Select a part, then Copy, Cut, or Paste it with Cmd + C, Cmd + X, or Cmd + V. The clipboard lasts while you move between cards in the same stack. A pasted part keeps its position, look, settings, script, and the text it was showing; a duplicate name gains a number.
Text editing
In any text area, press Tab to indent the current line or every selected line. Press Shift + Tab to remove one indentation level. These edits behave like normal typing, so autosave and your browser's undo continue to work.
In a card's text field, Return continues a list: a line starting - , * , 1. , 1) or a [ ] checkbox starts the next item the same way, numbered items count on (and the items below are renumbered), and a checked box starts the next item unchecked. Press Return on an empty item to end the list. On an indented line, Return keeps the indent. Alt/⌥ + ↑ and Alt/⌥ + ↓ move the current or selected lines up or down. With words selected, typing (, [, {, a quote, `, * or _ wraps them instead of replacing them. Cmd/Ctrl + B puts ** round the selected words for bold and Cmd/Ctrl + I puts _ round them for italic; the marks show as you type them and read as bold and italic in Markdown exports. Press the keys again to take the marks off, or with nothing selected to type between them. A field script that halts returnInField still keeps Return for itself.
Show Markdown, in the inspector of a multiline field, shows the field's text formatted while you are not typing in it: # headings, **bold**, _italic_, `code`, ~~struck~~, lists, - [ ] checkboxes, > quotes, --- rules and [words](https://…) links. It reads Fountain screenplay text too: a field that starts with a title page (Title:) or a scene heading such as INT. KITCHEN - DAY is laid out as a script, with scene headings, action, character cues, (parentheticals), dialogue, CUT TO: transitions, >centred< lines, ~ lyrics, ^ dual dialogue, # sections, = synopses, [[notes]] and === page breaks; /* boneyard */ is hidden. A [[Card name]] link, as Obsidian writes one ([[Card name|words]] to show other words), goes to the card of that name in the stack. In an ordinary Markdown field, put a script between ```fountain and ``` lines to lay out just that part. Click the text to type in it as written, marks and all; click away and it is formatted again. Ticking a checkbox ticks it in the text and saves. Links open (web links in a new tab) without starting to type. To make a link while typing, select the words and press Cmd/Ctrl + K: they become [words](https://) with the address selected, ready to type or paste over. Or paste a web or email address over selected words to link them in one step. With nothing selected, Cmd/Ctrl + K still opens Dealer. A locked field keeps the formatting and its links. Ruled lines are hidden while the text is formatted. Scripts, search and exports still see the plain text. It is off until you turn it on, so existing fields look as they did. The iPhone, iPad, Mac and Android apps have Show Markdown in the inspector of a multiline field too, and lay out Fountain scripts the same way; they show the rest of the Markdown as it is typed.
Text saves after you pause typing and is sent immediately when you move to another card. If a connection drops during a save, the latest field change is kept on this device and retried when the connection returns. Browse and Edit modes show when field changes are waiting, saving, saved, offline, or need attention. Choose Review saved changes in the offline banner to read and copy unsynced field text, or explicitly discard a local change. Retrying a conflicting draft never forces an overwrite: choose Keep mine or Keep the saved version there, or on the card itself. Changes to different words of a field are merged without asking. When an online save changed the same words as someone else, compare Your attempted save with Currently saved (the words only in one are highlighted) before choosing Keep mine, Load theirs or Edit together. Each card shows when it was last edited in its toolbar and card lists. Choose Card > History > Preview changes to compare current and saved values before restoring an earlier version.
History, in the View menu or the edit bar's Card menu, lists every edit to a field or a card's name, newest first: who made it, when, and what it said before and after, with removed words struck out and new words highlighted. One person's edits to the same field within ten minutes show as one change. Put back returns the field to how it was before that change; if someone has edited it again since, you are told, and Put back anyway replaces what is there now. Undo my last change takes back your own most recent change in the stack, and Redo brings it back — they work after a reload and from another device, press ⌘/Ctrl + ⌥ + Z (add ⇧ to redo) on a card when you are not typing in a field, and never write over someone else's later edit. People with view-only access don't see the history. The iPhone, iPad and Mac apps have Changes, Put back, Undo and Redo too. The newest 500 changes are kept per stack; making a stack or edition from a file or a copy is not a change.
Longer text, in the inspector of a multiline, rich text or styled paragraphs field, says what happens when the words outgrow the box you drew. Stays in the box keeps the box and scrolls inside it. Grows the field, moving parts below it down makes the field as tall as its text (never shorter than the box): in Browse, every part that starts below the field and overlaps it moves down with it, and the card gets longer when they reach its foot, so you scroll the card like a page instead of scrolling a small box. The parts keep their places in Edit, where the field shows its drawn size. Expanding paragraph in the Field type menu starts a field this way. Continues on the next card, for a multiline field, reads the field as one text across the cards, like pages: the words that don't fit move to the start of the same field on the next card, and when you write past the foot of the box you carry on there, with the caret where you left it. The next card is used when it shares the background (or has a card field of the same name); otherwise a new card is added right after, if you can edit the stack. Deleting makes room, and words come back from the next card to fill it. A link at the foot of the field shows the card it continues on. Focus and Text only leave the text where it is until you are back in the box. In the iPhone, iPad and Mac apps, Longer Text is in the inspector of a multiline field. Grows moves the parts below it down in Browse, as here. Next Card moves the words that don't fit when you leave the field — tap the card outside it, or turn the card — rather than as you type, and a note at the foot of the card says which card they went to. When you delete and leave the field, the words at the start of the next card that now fit come back, as they do here.
Text layout, in the inspector of a text field, sets how the words sit in the box. Alignment lines them up on the left, in the center, on the right, or Justified to both edges. For a multiline, rich text or styled paragraphs field, Vertical position keeps short text at the top, the middle or the bottom of the box, and Columns sets the text in one, two or three columns, like a newsletter; text in columns starts at the top, and text longer than the box carries on in more columns to the right (choose Grows the field under Longer text to lengthen the box instead). A multiline field is typed in a plain box, so its vertical position and columns show once the field is locked and its text is drawn on the card (columns also show while Show Markdown is formatting it). In a rich text field, the alignment buttons in the toolbar still set single paragraphs apart; in a styled paragraphs field, a style's own align wins. The same choices are the align, valign and columns keys of the field's Look JSON.
A field set to Rich text in the inspector has controls for undo, redo, bold, italic, underline, strikethrough, headings, quotes, bullet and numbered lists, links, text alignment, text color, and clearing selected formatting. Active formatting is highlighted in the toolbar. Select text, then choose a block style, left, center, right, or justified alignment, or use the color swatch to apply a color. Rich text stores only safe formatting and safe web or email links; scripts read and write its plain text.
Rich text also takes Markdown as you type: at the start of a line, #, ## or ### and a space make a heading, > and a space a quote, - or * and a space a bullet list, and 1. and a space a numbered list. In a list, Tab nests the item and Shift + Tab lifts it back out. Paste a web or email address over selected words to make them a link. Each of these is one step of Undo.
Browser spellcheck is on for text, multiline, rich-text, list, and checklist fields. Use the Spellcheck item in the header menu to turn it on or off for this browser. In the iPhone, iPad and Mac apps, the inspector's Style section sets Vertical Position and Columns too, and a locked Multiple lines field shows them there, its text shared between the columns at paragraph breaks.
Card overview
The view switcher above the cards moves between Card overview, Text outline and Table, keeping your Editing or Browse mode and the card you came from. The pencil or check beside the mode label switches modes when you can edit. New card, Sort cards and Back to card are at the top; Dealer is the one command bar at the bottom. Find, Show and thumbnail size sit together above the cards.
Choose Card overview in Dealer to see every card in the stack at once. The card you came from is outlined and labelled Current, and marked cards carry a Marked label. Click any thumbnail to open that card, or drag a card by its edge or caption to change its place in the stack.
Cards slide into place as you rearrange them, just like stacks in the Library. This animation respects your device’s reduced-motion setting.
Type in Find cards to show only cards whose number, name, or text matches, and use Show to see just your marked cards. S, M, and L set the thumbnail size, and the storyboard remembers your choice on this device. Thumbnails shrink to fit a narrow screen.
From the keyboard, select a card and use the arrow keys, Home, or End to move between cards; press Enter to open one. On a stack you can edit, Alt + ← or → moves the selected card earlier or later, and the new order is saved when it comes to rest.
On a stack you can edit, Sort cards… puts every card in order of its name or of a field new cards have, Ascending (A to Z, 1 to 9) or Descending; cards with nothing in that field go last. It changes the order for everyone, as the apps' Sort Cards does, and the card you came from stays outlined.
Open it while editing to arrange and edit from the overview: choose New card to add a blank card at the end, then drag a part, or drag its handle to resize it. Part changes snap to the grid and nearby card or part edges, then save when you let go. You can also edit field text and rename a card under its thumbnail, or choose Open editor when a card needs closer work.
Table view
Table, in the view switcher above Card overview and Text outline, under View in a card's More menu, or in Dealer, shows a stack's cards as a database shows its records: one row per card, with a column for each field on its background. A stack with more than one background has a Background menu to choose whose cards to see; it opens on the background of the card you came from. A card's own fields, which differ from card to card, are not columns, and neither is a background field with shared text, which reads the same on every card.
Choose a column's heading to sort by it, and again to reverse it: numbers sort as numbers, dates in date order, and empty cells go last. # puts the cards back in stack order. Sorting here only changes the table; Sort cards in Card overview changes the stack's order for everyone. Type words in Filter and choose Show to keep the cards whose name or any column holds them. The address keeps the background, sort and filter, so you can bookmark a table or send it to someone you share the stack with.
Each cell shows its field the way you'd read it: a checkbox says Yes when ticked, a checklist how many of its items are done, rich text and styled paragraphs their words, and a linked cards field the names of the cards it links in this stack. The table only reads; choose a card's name to open it and change it. Fields hidden on the card show here only for people who can edit the stack, and a role that hides a background or field hides it here too.
Download CSV, for people who can edit the stack, saves the rows the table shows, in its order and with its filter, as a file Excel, Numbers or Google Sheets opens: a card number and name, then a column per field. A cell that starts like a spreadsheet formula (with =, +, - or @) starts with an apostrophe in the file, so it opens as the words it is.
Outline
Choose Text outline in Dealer while browsing to open a text outline in a sidebar. Each card is a numbered heading with its field text beneath it; select a heading to open that card. Choose Edit outline in the sidebar to open the full outline, or choose Text outline in Dealer from Edit mode. The full outline opens in Editing when you have permission, unless you chose Browse. The pencil or check beside the mode label switches between reading and editing; the view switcher opens Card overview, keeping the mode and the card you came from. Find and Titles only sit in a separate row above the text. While Editing, a card name or text field saves after you pause typing. Each text box is labelled with its field's name and grows to show all of its text; a field the outline can't edit in place shows only when it has text. Press Enter in a card name to jump to that card's first text box, ↑ or ↓ to go to the name of the card above or below, and Esc in a text box to go back to its card's name. Choose New card to add a blank card at the end, or press Cmd/Ctrl + Enter in a name or text box to add one right after that card; the outline stays open with the new card's name ready to type, and anything you just typed is saved first. Use Open editor for field types that need their full card controls.
Type in Find in outline, or press /, to show only the cards whose number, name, or text holds every word you type; the count above says how many match. Press Enter to go to the first match, or Esc to clear the search. Cards can't be moved while a search is hiding some of them.
Outline follows the stack's card order, and the card you came from is highlighted. Titles only hides the field text so you can see the shape of the whole stack; the outline remembers the choice on this device. If you can edit the stack, rearrange cards in the browsing sidebar or the full outline: drag the Move handle (the card number in the full outline), or use the card's ↑ and ↓ buttons, which sit beside its name in the full outline and show when you point at or work in that card. You can also press Alt + ↑ or ↓ on a move handle or editable card name. The new stack order is saved for everyone; moving a card in the sidebar refreshes the open card at its new number. People who can only read the stack always see the read-only outline.
Fields, Buttons & Widgets
In Edit mode, + Field adds a text field immediately. Choose Field type to add another kind of field. Choose Widget type to add the widget you need without changing its type afterward.
Fields hold text — a single line, a paragraph, a number, a checkbox, or a hyperlink that opens an http, https, or mailto URL in a new tab. Type or paste the address into an empty hyperlink field, or choose ✎ beside the link to change it (Return saves, Esc puts back what was there); example.com and [email protected] work without https:// or mailto:, and the link shows the address without them. The iPhone, iPad and Mac apps work the same way. A link to a card points to another card in the same stack: choose it in the inspector, and the link keeps following it when the stack is reordered. They can also be a list: one item per line, where clicking a row outside its text picks it (with multiple lines on, shift-click picks a range and ⌘-click toggles one), or a checklist: one item per line with a box beside it, where ticking one strikes it through and the field counts “3 of 6 done” at its foot. Both reorder: drag an item up or down to move it — on a touch screen, hold it for a moment first, since a quick swipe scrolls the list — or hold ⌥ and press an arrow; on a list that moves the picked line. A click or tap that doesn't move still edits, picks or ticks as before. Hold a dragged item near the top or bottom of a list that scrolls and the list scrolls with it; press Esc during a drag to put the item back where it was. Both take rewording too: to fix an item’s wording, click its text or press F2, then Enter or click away to save; Escape puts back what was there. To remove an item, drag it out past the edge of the field — it fades as it leaves — and let go; clearing its text and saving removes it too, and so does Delete or Backspace (on a list, for the picked lines; on a checklist, for the item whose box has focus). Undo in the message that follows puts it back where it was. Pasting several lines into Add a line… adds each as its own item, leaving off bullets and numbers, and a checklist ticks the lines marked [x] or ☑. In a list, Home and End pick the first and last line, and typing a letter picks the next line that starts with it. The iPhone, iPad, Mac and Android apps work the same way: tap an item’s words to reword it, paste or type into Add a line…, and hold an item (on the Mac, just drag it) to drag it up or down — holding it near the top or bottom of a list that scrolls scrolls the list along — or out past the field’s edge to remove it, with Undo just below; clearing an item’s words removes it too. On the Mac a right-click also offers Move Up, Move Down and Remove, as VoiceOver and TalkBack do; on iPhone and iPad, the … button beside an item you are rewording has them; on a locked list a tap picks the line. Typing saves as you go, and so does ticking an item, editing one or adding a line. A dropdown field offers a menu to pick one option from: type its Options in the inspector, one per line, and the option picked becomes the field's text, saved as soon as it is chosen. A value set some other way that is not one of the options stays shown until someone picks another. Components are saved copies of a field, button, or widget. In Edit mode, select a part, save it from the inspector, then choose Components to insert it on a card or background in any stack you can edit. Changing an inserted part does not change the saved component or other copies. A copied card link starts unassigned, so choose its target in the new stack. The iPhone, iPad and Mac apps save and insert components from the inspector too. Buttons run their script when clicked. Widgets include an image, a gallery, a drawing, and stack view, a linked list of this stack's cards.
A paragraph field can have Ruled lines (HyperCard's Show Lines) and can be a Scrolling field that keeps its height and scrolls inside instead of growing; both are checkboxes in the inspector, beside Auto tab (Tab always leaves the field; without it, Tab indents only in a list, on an indented line or over several selected lines, and otherwise moves to the next field, as in a form), Fixed line height, Wide margins and Don't search. When a field holds more text than fits in its box, a small More ↓ tag sits in its bottom corner: scroll inside the field to read the rest, and the tag goes once you reach the end. In Edit mode it is a hint to make the field bigger.
Every part has a Hidden box: a hidden part is not drawn in Browse but shows ghosted in Edit so you can still select it, and a script can reveal it with wyldcards.show('name'), flip it with wyldcards.toggle('name'), or keep it revealed with wyldcards.setHidden('name', false, {save: true}).
A button can show an Icon picture: one of the stack's uploaded images. A picture wins over the glyph in the Icon box.
A button's Style is one of HyperCard's: Standard, Default, Transparent, Opaque, Rectangle, Round rect, Shadow, Link (the label underlined in the accent colour, or the button's own text colour, like a web link), Check box, Radio button or Popup menu. Highlight when pressed briefly inverts the button for a mouse, touch, or keyboard press; turn it off for buttons that should not react visually. A check box or radio button is ticked in Browse and remembers it; radio buttons that share a Family number turn each other off. A popup menu lists its Options, one per line, and remembers the choice. Scripts read them with wyldcards.hilite('done') and wyldcards.popup('section').
Every part has a name, and scripts reach parts by that name — so name them well. In Edit mode, select a field to set its width in the inspector and choose whether its border is shown.
Select a field or button in Edit mode and pick its Font in the inspector: Arial, Times New Roman, Courier New, Serif, Rounded, Slab serif, Condensed or Monospace, or the card's font. Each uses a face already on the device, never a download, and falls back to the closest match — Liberation or ChromeOS's Arimo, Tinos and Cousine where Arial, Times and Courier are missing — so a card keeps its look on Mac, Windows, Linux, ChromeOS and phones.
Images & other widgets
Drawing is a freeform canvas. Add it from Widget type, leave Edit mode, then choose a pen color and width to draw. Each completed stroke saves automatically; use Undo or Clear to revise it. Resize the widget to change its frame without stretching the stored drawing.
Images live with their stack. Add a widget, choose image, then upload a PNG, JPEG, or GIF file and select it. Add alternative text unless the image is decorative, then save the part to place it; resize the part to frame the picture. Each stack can keep up to 100 images of up to 20 MB each, and 50 MB in total. Photos are turned the right way up and scaled down to 4,096 pixels on their longest side, and their hidden details (such as where a photo was taken and the camera it came from) are removed; GIFs are kept exactly as uploaded so animations still play. Smaller copies are made for small parts and phones, so cards with pictures open faster.
Gallery shows the pictures on the cards of one background as a grid, newest card first; choose one to open its card. Config names the background and the field holding each card's picture, as an image widget's field does, and optionally a field to caption it: {"background": "Photo", "field": "image", "label": "title", "empty": "No photos yet"}. Add "newest": false for first-card-first.
Card previews and card shortcuts live with their stack too. Add a widget, choose card preview to show a contained, read-only card, or choose card shortcut to make a link that opens a card. Select its destination in the inspector; both follow that card when the stack is reordered. You can only choose a card in a stack you can open. A preview or shortcut to a card in another stack shows that card, or its name, only to people who can open that stack too; everyone else sees that the card isn't available.
QuickTips shows one helpful hint at a time. Use Previous tip and Next tip to browse its tips; the count beside them shows where you are, and the buttons hide when there is only one tip. Its default tips explain Wyldcards; replace them in Config with {"title":"Helpful hints","tips":["First tip","Second tip"]}. Choosing a tip sends wyldcards:tip, including event.detail.tip and event.detail.index, so a card script can respond to it.
An index card
A card can list its own stack. Put a list field on it, then write two lines of script:
on openCard wyldcards.index('songs', 'title')
on wyldcards:select if event.detail.name is 'songs'
then wyldcards.goToIndex('songs') end
wyldcards.index fills the field with one line per card, labelled by the field you name — the song's title here — or by the card's name when you name no field. Add {field: 'title', sort: 'text'} instead to put the list in alphabetical order, and {field: 'title', background: 'Song'} to list only the cards on the background of that name, so a contents card leaves out the title page and the setlist. For a list of to-dos, unless: 'done' leaves out cards whose done checkbox is ticked, where: {list: 'Clearances'} keeps the cards whose list field says Clearances (a value ending in /*, such as 'Road songs/*', also keeps the ones filed inside it, Road songs/Night drives), first: 'flagged' brings cards with that checkbox ticked to the top with a ⚑ (add mark: '★' to start their lines with a star instead). linking: 'chapter' keeps the cards whose linked cards field named chapter links to the card holding the index — a chapter's own scenes. The card holding the index is never listed in it.
wyldcards.goToIndex then goes to whichever card the picked line stands for. It follows the card and not the words, so two songs may share a title and a renamed song still goes to the right place. In the iPhone, iPad and Mac apps, tapping a line of the list does the same.
Read: Cards, Text & Pages
Text and Pages keep their controls in the top toolbar. The list icon opens Card list; Text also has a grid icon for Card overview. Both follow the card you are reading. Print stays at the top, with Stats and Dialogue tuner on Pages. Open Page layout for paper, margins, page numbers, card breaks and the title-page toggle; Zoom stays beside it. When reading marked cards only, the toolbar shows Marked cards.
Choose Read in Dealer on a card in Browse mode to read the whole stack. It opens on Cards, which hides the app controls and shows every card in order, or on Text when the card has a styled paragraphs field; then Cards, Text and Pages tabs at the top switch between every card as it looks, the writing on a quiet page (see Read) and the writing as printable pages (see Pages), keeping your place. A stack with no styled paragraphs field has Cards and Text: Text reads every card's name and then its fields in reading order, read-only, with Cards in the toolbar to jump to one, and the same text size, typeface (Book to start with) and theme choices. ⌘⌥T (Ctrl+Alt+T on Windows), Text only on a single card, switches to Text here, and from Text back to Cards. Cards opens at the card you were on, and as you scroll the page's address follows the card in view, so reloading or coming back keeps your place. Choose Horizontal to scroll across the cards side by side, Vertical to scroll down through them one below another, Continuous to join the cards edge to edge so the stack reads as one long card, or Grid to see smaller cards several to a row (choose a card in the grid to open it); your browser remembers the choice, unless the stack's owner chose one under Opens in. Each card keeps its layout and has an Open card link for returning to the normal interactive card view; editors see a Marked tag on marked cards. For editors, the ⋯ beside Open card can Mark or Unmark it, Duplicate it, or Delete it (the next message offers Undo), without leaving the page. When some cards are marked, Marked only narrows the scroll to them and All cards shows every card again. Editors can choose Arrange cards, then drag a card by its grip or focus the grip and press the Left and Right Arrow keys (Up and Down when scrolling vertically; in the grid Left and Right move a card one place and Up and Down a whole row). While you arrange, Continuous shows the cards apart with their grips. To get around, press ← and → for the previous and next card and Home and End for the first and last, or drag along the scrubber beside the card count, which shows where the card in view sits and has a tick for each marked card. The card count is Go to: it lists the cards to find one by number or name, and typing a card's number on the page opens it with that number filled in; press Return to go. Use Done to return to the card you scrolled to. Dealer has these choices too: type read all cards across, down, as one long card, as a grid or arrange all cards, and on Read's Cards tab it marks the direction you are using as Current. The iPhone, iPad and Mac apps have the same Read, with its Cards, Text and Pages tabs; the Android app has Scroll Stack. Both have Horizontal, Vertical and Continuous and Arrange Cards for editors.
Merge cards
Open Cards above the paper, or choose Card overview in Dealer, in a stack you can edit. Select two or more cards with Cmd-click (Ctrl-click on Windows), or Shift-click for a range. Right-click a selected card, or press Shift + F10, and choose Merge selected cards…. Confirm to replace the selection with one new card at the first selected card's position.
Cards are combined in stack order, with their layouts placed vertically. Fields, buttons, widgets, images, painted pictures, and author notes are preserved. Background fields become independent card fields with the text each original card displayed. The new card takes the first card's name and starts private. The originals are permanently deleted: their old links, comments and history are not transferred.
Cards with Can't delete enabled cannot be merged. Different non-empty card scripts or background scripts must be reconciled first; matching scripts and part scripts are retained. Duplicate part names gain a number; scripts that reference renamed parts may need updating. Painted cards must fit within the painting size limits (4096 pixels per side). A failed merge leaves the originals intact.
Card size and opening a stack
Owners can choose ⋯ > Card size… in a card toolbar, which opens the stack's Card size settings, to switch every card in the stack between Classic, Widescreen, Square, Portrait, and iPhone or iPad screen presets. Or type any width and height from 200 to 4096 px. In a stack's Settings, turn on Open this stack in the editor to have people with editing access start on its first card in Edit mode. Viewers still open the stack in Browse mode. The iPhone, iPad and Mac apps honour it, and set it in Stack Details. A stack that opens on its first card picks up at the card you were last on once you have been in it (Getting around a stack).
To have a stack open somewhere other than its first card, choose Opens in in its Settings: All cards, across, All cards, down or All cards, as one long card (Read's Cards tab, scrolling that way), or First card. Text editor is what a stack opens in unless you choose otherwise: people who can edit open the whole stack as Markdown, and everyone else gets the first card. It applies to everyone who opens the stack from a list or a link to the stack; a link to a particular card still opens that card. An All cards choice also sets how this stack's Read's Cards tab scrolls, whichever way you last chose for other stacks. The iPhone, iPad and Mac apps honour it and set it under Opens In in Stack Details; the Android app honours it and sets it from a card's ⋮ > Opens In….
History
Everything a stack remembers is on one History page: choose History in Dealer. It lists who changed what, newest first under a heading for each day (Today, Yesterday, then the date), with Put back; when more than one person has changed the stack, the buttons above the list show everyone's changes or just one person's (Me for your own). Long fields show only the words around what changed, and Older changes at the bottom goes further back. Undo my last change and Redo are dimmed when you have nothing to undo or redo. Opened for one card, it also lists that card's earlier versions; and the stack's owner finds its snapshots there. In Edit mode, Card > History shows the current card's earlier versions beside the card, with a link to the rest.
The top row switches between History and Compare versions (plus Editions for owners), with quick jumps to Earlier versions when viewing a card and Snapshots for the owner. Whole stack and the card-number button set the timeline's scope. Back to card returns to the card you came from, including after filtering, paging, undoing, redoing, putting a change back or saving a snapshot.
Restore an earlier version of a card from its versions list. Wyldcards keeps the latest 50 versions made before a card field, name, script, or mark changes. Before restoring, it saves the card's current state as the newest version, so you can restore it again if needed. Restoring returns those card-specific values and leaves parts added later in place. Shared background text and background layout changes are shared by several cards, so they are not part of card history.
Each version shows a small picture of the card as it was, and Preview changes sets it beside the card as it is now. History keeps words, not layout, so the pictures lay each version's text into today's layout.
Stack History
On the stack's History page (History in Dealer), the owner can save a named snapshot under Snapshots before a large edit, import, or rehearsal. Wyldcards keeps the latest 25 snapshots, each containing the stack's cards, backgrounds, fields, parts, and scripts. Restore as new stack creates a separate copy, leaving the original unchanged so you can compare the two. Access settings, collaborators, images, and links between cards are not included in snapshots.
Compare Versions
Compare versions sets two versions of a stack side by side. Open it from Compare versions in the top row of History, compare with now beside any change, Compare with now beside a snapshot, Compare… beside an edition on the Editions page, or type compare in Dealer. On each side pick Now, one of the stack's editions, a snapshot, or a point before a change in History; Swap sides turns the comparison round. Use History in the top row to return to the timeline, or Back to card to resume the card you came from. With nothing picked it compares another edition (or the newest snapshot, or the stack before its latest change) with now.
The summary counts cards added, taken out, changed and moved, and scripts changed. Each changed card then shows its fields side by side: removed words are struck through on the left and added words underlined on the right. Parts that were added, taken out, moved, resized, restyled, shown or hidden are listed underneath, and scripts are compared line by line. Unchanged cards are folded into one list. Cards are matched by name, so a renamed card with mostly the same words still counts as one card.
The Code tab compares the two versions written as stack code (.wyldcards.xml), line by line. A point before a change is rebuilt from History, which keeps words, not layout: it shows field text and card names as they were, with today's layout, scripts and cards. Compare versions is for people who can edit the whole stack; snapshots appear for the owner.
Playing and Editing on a Phone or Tablet
Shared and published stacks have large Previous, Next, and Text tap targets on phones. Cards arrange their parts in a vertical column on screens up to 600 pixels wide unless the owner turns off Adapt cards for phones in Stack Settings. Locked text and button labels wrap and grow to fit their content, and fields use a readable minimum text size. The stored desktop layout is preserved. For fixed-layout stacks, scroll the canvas sideways or choose Text for a plain-text reading view. In a private stack, Text only in Dealer or Cmd + Option + T (Ctrl + Alt + T) also puts the card's fields and controls in its reading order, so keyboard focus and screen readers follow the same sequence.
Cards scale to fit the available workspace as the screen changes size. On narrow screens, the inspector sits below the card; scroll the workspace to reach it in a short window or landscape orientation. Card navigation has larger tap targets, and long card names are shortened to keep the arrows within reach. On a phone, parts flow vertically while browsing unless the stack keeps its fixed layout; Show as designed switches one stack back to the scaled card for you.
In Edit mode, swipe the tools row sideways to reach every action. Tap inside a field to edit its text. To move a part, drag its visible name tag; drag the green corner handle to resize it. Choose a part from the selector below the tools row when overlapping parts are hard to reach. In the iPhone, iPad and Mac apps, the Card menu in Edit, and scripts are typed as code: no autocorrection, capitals or curly quotes. The Part selector at the top of the inspector does the same.
Any touch screen — a phone, an iPad, an Android tablet, or a laptop with a touch screen — gets finger-sized controls around the card, even when the window is wide enough for the desktop layout: toolbar and menu buttons, edit tools, tabs and form fields are at least 44 pixels tall, and checkboxes are larger. Controls that appear only when a mouse hovers a row (the row buttons in lists, drag grips, a song block's controls) stay visible. In Edit mode every part shows its name tag to drag and a large round resize handle. Form fields use at least 16-pixel text, and on iPhone and iPad typing into a field on a card no longer zooms the page (you can still pinch to zoom). The card itself keeps the sizes it was designed with.
Text Size Controls
Zoom the page with Cmd + + and Cmd + −; Cmd + 0 returns to actual size.
While you are signed in, the text size and the appearance you choose (System, Light, or Dark) are saved with your account, so another browser, another computer, and the iPhone, iPad, and Mac apps open the same way. A browser picks up a change made elsewhere the next time you open Wyldcards in a new tab.
Accessible controls: shared buttons and form fields adapt to Light and Dark appearance, with visible outlines for keyboard focus. The New stack form highlights invalid fields after interaction rather than marking empty required fields as errors immediately. Shared controls respect your device's reduced-motion preference.
High contrast: choose High contrast in the account menu, under Light, Dark and System, to make secondary text darker, give every button, field and card a clearly visible edge, and widen the keyboard focus outline. Links in text are underlined, messages get a thick edge, and fields that need fixing get a dashed one, so nothing depends on telling green from red. It works in Light and Dark. If your device is set to increase contrast (Increase contrast on a Mac, iPhone or iPad, or a Windows contrast setting), High contrast is on already; untick it to turn it off in this browser. The choice is kept in this browser. In the iPhone and iPad apps, High Contrast is under Appearance in the account menu; on the Mac, in Settings ▸ General. It is kept on that device.
Density: the row under High contrast in the account menu chooses how much room the app's own screens take. Compact fits more stacks, rows and Dealer results on the screen, Comfortable is the usual spacing, and Spacious gives everything more room and larger controls, which suits a touch screen. Every screen of the app follows it (the Library, Dealer, menus, Help, settings and the rest); your cards keep the sizes you drew them at. The choice is kept in this browser.
Colours & Style Guide
Wyldcards wears one colour everywhere: jungle green. Links, primary buttons, selected tabs, the keyboard focus ring and Edit mode's handles are green on every page, signed in or out, in Light and Dark appearance, and in the iPhone, iPad, Mac and Android apps. In Dark appearance the web's green is lighter and the text on green buttons is dark, so both stay easy to read.
Every screen is built from the same pieces: one kind of button (primary, plain, quiet and danger, in a few sizes), one kind of text field, one page heading with its actions on the right, one dialog, one notice for messages on a page, one toast for messages that come and go, and one empty state. Pressing Tab always shows the same green outline around the focused control. A link in a sentence is underlined, and the line turns solid when you point at it; things that only look like links, such as tabs, menu items, tiles and buttons, don't underline.
The top of every page shows the Wyldcards logo — the vine y with the monkey hanging from it, in white letters in Dark appearance; choosing it goes back to the Library. The monkey on its own, on cream, is the icon of the web app, the Android app and the iPhone, iPad and Mac apps. In a browser tab, where the whole monkey would be too small to see, the icon is just its face. On an iPhone or iPad set to Dark or Tinted icons, the monkey keeps its shape: a lighter brown on the dark backdrop, or your chosen tint. Titles and dialog headings are set in the same rounded Nunito as the logo; everything else is set in your device's own text face (San Francisco on Apple devices, Segoe UI on Windows, Roboto on Android), and scripts, links to copy and other code use its matching monospaced face, so the pages read like the rest of your system and load no extra fonts. Arrows, close buttons and menus use one set of line icons. Help articles, Read and Text only keep lines to a comfortable reading length with a little more space between them, and their links are green like everywhere else. A card lies on a warm, paper-coloured desk taken from the monkey icon's cream, in the iPhone, iPad, Mac and Android apps too, where sheets, cards, buttons and thumbnails round their corners on the same scale as the web; an empty list shows the monkey, sometimes in a little scene of its own (beside a fan of blank cards when you have no stacks yet, with a magnifying glass when a search finds nothing, peering into an empty bin in the Trash, resting under the moon when there are no notifications); so does a page that can't be found (the monkey hangs upside down from a vine), isn't shared with you or failed on our side (a toppled stack of cards), and the page you see with no connection (a crossed-out cloud), each saying in plain words what happened with a way to go on (Library, Search, Try again, or the stacks you kept offline); menus, dialogs and messages open with the same short movement, and small actions answer back: a ticked box gives a little pop, a finished checklist item's line fades in, a star or other toggle's icon pops when you switch it on, messages fade away rather than vanish, and a stack moved to the Trash folds out of the list. Your system's Reduce motion setting turns all of it off. While something is still on its way, you see its shape rather than a blank: card pictures show soft placeholders with a slow sheen, and a thin green line runs along the top of the window when a page takes more than a moment to open. With Reduce motion on, the placeholders stay still. Emails from Wyldcards (password resets, invitations, notifications and cards you send) wear the same look: the monkey and the wordmark on the warm desk colour, a white panel and one green button.
Charts share one style too: practice weeks and trends, writing stats and the level and hold meters draw their bars in the brand green on a soft empty track, with green, amber and red kept for right, close and wrong, in Light, Dark and High contrast. The Style guide page shows all of them, with every colour, text size, corner and shadow, in whichever appearance you are using; the buttons at its top switch between Light and Dark for a moment without changing your saved choice. Your own card designs keep their colours.
Scripting with _hyperscript
Scripts are written in _hyperscript, a language that reads like HyperTalk. Every part, card, background and stack can have one. A message such as click starts at the part and bubbles up: part, then card, then background, then stack — the first handler that catches it wins.
The native macOS and iOS app runs a safe subset in its native editor: on click and on openCard handlers can use wyldcards.go(...), setField(...), show(...), hide(...), answer(...), and newCard(). Open Full Workspace from the Stacks toolbar to use the complete web workspace, including every supported script feature.
on click wyldcards.go('next')
on click wyldcards.sort('name')
on click wyldcards.setField('count', 0)
on click set answer to wyldcards.field('guess')
if answer is 'C4' then wyldcards.answer('Right!') end
on wyldcards:select wyldcards.setField('picked', event.detail.text)
on click wyldcards.uncheckAll('items')
on wyldcards:check if event.detail.doneCount is event.detail.total
then wyldcards.answer('All done!') end
The wyldcards object is the runtime: go(target) ('next', 'prev', 'first', 'last', a number, or a card name), goMarked('next') or goMarked('prev'), field(name), setField(name, value), show(name), hide(name), answer(message, ...buttons), ask(message, default), newCard() (or newCard({background: 'To-do', fields: {list: 'Clearances'}}) to put the new card on the background of that name, after the cards already on it, with those fields filled in; add name: 'Rosa — Shenandoah' to name the card too, and stay: true to make it without leaving this card), sort(field) (HyperCard's sort — orders the whole stack by a background field, or by card name with no argument; pass 'descending' as a second argument, and cards with that field empty go last either way), card() for the current card's number, name, uid (what a linked cards field stores, so newCard({background: 'Plan', fields: {trip: wyldcards.card().uid}}) links the new card back to this one). For a screenplay, sceneHeading(text) takes a slug line apart — {prefix, location, time, interior, exterior}, the location being everything before the last ' - ' — scriptLength(paragraphs(name)) counts the words a scene is read in (notes, synopses and sections left out) and the pages they fill at 250 a page, as label '142 words · 0.6 pages', locationIndex('scenes', 'locations') lists each place an index of scene headings happens once, with how many scenes, so goToIndex('locations') goes to its first scene, and tableRead(name, {voices: {MARA: 'Samantha'}, narrator, names, directions, description, rate}) reads a styled paragraphs field aloud the way a table read does — INT. said as “interior”, (V.O.) as “voice over”, a pause before each scene, each character in their own voice when you name one, notes left unread; isReading() says whether one is going and stopReading() (or stopSpeaking()) ends it. speakerIndex('scenes', field('name'), {summary, background, field}) lists the scenes a character speaks in (from every Scene card's script by default), each with its speeches, so goToIndex('scenes') goes to one, and writes “3 scenes · 7 speeches · 58 words” into the summary field; speakerScenes(cards, name) does the counting on [{n, name, text}] without changing anything. characterVoices({background, name, voice}) gathers each character card's voice into the map tableRead takes — tableRead('script', {voices: characterVoices()}) — and voiceNames('en') lists the voices this device has. openComments('script') opens the comments on the caret's line (or openComments('script', 3) the fourth line's), false where the field takes none. elementLabels(true) names each styled paragraph's style in a gutter beside it and autoCaps('scene', false) shows an element's paragraphs as typed (scene, character, transition or shot) — the Screenplay app's View options, kept in this browser; called with nothing, each says how it is set. index(name, {number: true}) numbers the lines, and count: 'down' (or a field reading Count down) numbers them from the top down to 1. renumber({background: 'Item', field: 'number', count: 'down'}) writes each card on that background its place among them into that field, so the numbers follow the cards when they move, and moveIndexed('items', -1) moves the card behind the index line that is picked up a place among the cards listed (1 moves it down). proof('script') reads a field through for a word typed twice, stray, missing or misplaced spaces and unclosed brackets, as [{kind, label, paragraph, at, length, text, snippet, fix}] (proofText(text) for any text; fixProof('script') applies every fix that has one right answer); scriptOutline() answers a promise of the scene cards' sections, numbered headings and synopses, [{n, kind, number, label}], and sceneOutline(cards) does the same for [{n, text, synopsis}]. markParagraph('script', 4, 'bookmark') changes a paragraph's marks as ☆ Mark does ('pin', 'bold', 'highlight:yellow', 'align:center', 'tags' with the words, 'clear'), and paragraphs(name) gives each paragraph's marks — {bookmark, pin, highlight, bold, italic, underline, align, tags}; setParagraphs takes them back, and a paragraph passed without marks keeps those of the line with the same style and words (pass marks: null to clear them); scriptMarks({mark: 'bookmark' | 'pin' | 'any', tag}) answers a promise of the marked lines across the scene cards, [{n, heading, paragraph, text, marks}], scriptTags() every tag with its count, and goToParagraph(card, 'script', paragraph) goes to a card and puts the caret on that line. pickImage() lets the person choose a PNG, JPEG or GIF, adds it to the stack's pictures and answers {id, href, fileName}, or null if they cancel; an image widget whose config names a field ({"field": "headshot"}) shows the picture whose id that card's field holds. saveImage(event.detail.dataUrl) keeps a canvas, a data: URL, or a PNG, JPEG or GIF blob in the stack's pictures the same way and answers the same {id, href, fileName}, and shareImage(id, title) hands one of the stack's pictures to the share sheet (Photos, Messages, AirDrop) where the browser can share files, and downloads it where it cannot. For a screenplay, sceneHeading(text) takes a slug line apart — {prefix, location, time, interior, exterior}, the location being everything before the last ' - ' — scriptLength(paragraphs(name)) counts the words a scene is read in (notes, synopses and sections left out) and the pages they fill at 250 a page, as label '142 words · 0.6 pages', locationIndex('scenes', 'locations') lists each place an index of scene headings happens once, with how many scenes, so goToIndex('locations') goes to its first scene, and tableRead(name, {voices: {MARA: 'Samantha'}, narrator, names, directions, description, rate}) reads a styled paragraphs field aloud the way a table read does — INT. said as “interior”, (V.O.) as “voice over”, a pause before each scene, each character in their own voice when you name one, notes left unread; isReading() says whether one is going and stopReading() ends it. A list field adds lines(name), selected(name) (the picked line, or ''), selectedLine(name) (its number, or 0), selectedLines(name) (every picked number), select(name, lineOrText) (or an array of them), addLine(name, text), removeLine(name, lineOrText), moveItem(name, lineOrText, by) and setLine(name, lineOrText, text) (rewrites one item’s text); picking a line sends wyldcards:select to the field with event.detail.line and event.detail.text for the line clicked and event.detail.lines for everything picked. setField takes an array for a list.
Script editor & debugger
The script editor: every script box — a part's Edit script, and the card, background and stack scripts under Scripts — colours what you type (messages after on, strings, comments, wyldcards. commands) and numbers its lines. Type wyldcards. to choose from every command, the commonest with a reminder of how they are called; type on at the start of a line for the messages a part, card or stack is sent. Arrow keys choose, Enter or Tab accepts, Esc closes the list, and Ctrl + Space opens it again. A command the runtime does not have is underlined in red. While you type, the script is checked the way the browser will read it: a problem is named under the box with its line — click it to go there. Cmd or Ctrl + S (or Enter) saves; Tab indents at the start of a line and otherwise moves on as usual.
Docking the editor. In Edit mode a script opens in the panel beside the card, which widens while it holds a script, and the editor fills the panel's height. Choose Dock below the card above the script to move the panel under the card at full width, for long lines; Dock beside the card puts it back. Wyldcards remembers your choice in this browser, and the card has the whole width again whenever the panel shows something other than a script. On a phone the panel is always below the card.
The debugger: click a line number in the script editor to set a breakpoint (a red dot; click again to clear), then leave Edit and use the stack. When a script reaches that line it stops before running it, and a Stopped panel shows the script with the line marked and what its variables hold — your own, plus it, event and me. Continue (F8) runs on to the next breakpoint, Step (F10) runs the line and stops at the next, and Stop script ends that handler there. Tick Stop at the first line of the next script that runs under the editor to catch a script you cannot find — whatever handles the next message, idle included. Breakpoints belong to your browser tab and are forgotten when it closes; nobody else using the stack is stopped by them. In the iPhone, iPad and Mac apps, Background Script sits beside Card Script in the part, card, background and stack script editors have Breakpoints… (tap a line to set or clear its red dot) and Stop at Next Message under the script. When a script stops, the same Stopped panel opens over the card, with Continue (⌘\), Step (⌘') and Stop Script: on an iPhone as a half-height sheet, and on an iPad or Mac floating in the window's corner, so you can still read and scroll the card while the script waits. The app keeps breakpoints until it closes.
Interactions on a card
In Edit mode, choose Card > Interactions for one list of everything on the card that reacts in Browse: each button's card link, a conditional route, a card-link field, a part shown only while something is true, the steps made with Build actions visually (when they run and what they do, in words), and any other script, named by the messages it answers. Parts on the background say so, hidden parts too, and the card, background and stack scripts close the list. A part that does nothing is left out.
Select opens a part's inspector. Try it opens the card in Browse with that part outlined and a note saying what to do (click it, drag it, or when its steps run); Back to Edit returns you with the part selected again.
Visible when
Any part can show itself only while something is true, with no script. Select it in Edit mode and open Visible when… in its inspector. Choose whether to check a field on this card or a variable (see Variables), type its name, choose a comparison — equals, does not equal, contains, is empty, is not empty, is more than or is less than — and what to compare with, then save the part. Leave the name blank to show the part always. A ticked checkbox field reads as true, an unticked one as false.
In Browse the part appears and disappears on its own as the field is typed in, ticked or set by a button, or as the variable changes, so a Well done! can wait until an answer is filled in, a door until the score passes 10, or a hint until a checkbox is ticked. In Edit mode every part stays in view so you can work on it; the inspector's summary names what it checks. Its Hidden box and wyldcards.hide still hide it whatever the rule says. Pages that run no scripts, such as a published stack whose owner has not turned scripts on, show the part always. In the iPhone, iPad and Mac apps, the inspector's Visible When section sets the same rule, and a rule on a field of the card is followed there in Browse; a rule on a stack variable is followed there too once the card's scripts have run, and until then the part shows.
Button recipes & visual actions
Select a button, field or widget in Edit mode and open Build actions visually in its inspector; it opens by itself for a new button or any part whose script it made. Its wording follows the part: Make this field…, When this widget is clicked. Add, remove, or reorder actions to set a field, add to a number field, copy one field into another, show a message, show, hide or toggle a part, wait a few seconds, say words aloud, go to a card, or create a card using a named layout (leave the layout blank to copy the current card's layout). Choose next, previous, first, last, or a card number from the destination menu. Field names offer suggestions from the current card, and you can also type a name. Leave the condition's field name blank to always run an action. Navigation and card creation must be last. Preview generated script shows the script updating as you build. Generated scripts can be reopened in the builder; hand-edited scripts are left alone until you explicitly replace them.
When at the top chooses what starts the actions. On a field it starts as This field is changed: typing into it and leaving it changed, ticking or unticking a checkbox, choosing from a menu, or ticking a checklist item, so a field can keep a count, reveal a part or move on when it is answered. It is This button is clicked unless you change it: The card opens; The pointer moves onto this button or leaves it (on a touch screen, as a finger lands and lifts); This button is held down; The card is swiped left, right, up or down, which runs the actions instead of turning the card; or A field is changed, when you leave the named field having changed its text. The button can be anywhere on the card, even hidden, and still hear these. The sentence above the list of steps says when they run. Nothing runs in Edit mode.
Record steps: instead of adding steps one by one, choose ● Record steps in the builder. The card opens in Browse with a banner at the bottom: type into its fields, tick its checkboxes or choose from its menus, and each change becomes a Set a field step (changing a field again keeps only its last value). Going to another card — its arrows, a button, a link — becomes the last step, Go to the next card, previous, first, last or a card number, and ends the recording. Or choose Stop recording to finish on the card, or Cancel to add nothing. Either way you are back in Edit with the part's builder open, the recorded steps after the ones it already had, ready to review and Save actions. Only what you do by hand is recorded, not what scripts do, and recording lasts for this browser tab.
Make this button… recipes: select a button in Edit mode, open Build actions visually, and choose Go to a card, Check off a task, Show an answer from a field, Update a field, Show a message, Reveal a hidden part, Show or hide a part, or Keep score. Choose an existing field (Check off a task lists only checkbox fields), enter any value or destination, and choose Add recipe. Showing an answer reads that field when the button is clicked, so each card can have its own answer. Reveal and Show or hide list every named part on the card; tick a part's Hidden box first so it starts out of sight. Keep score adds 1 (or the amount you enter; a negative number subtracts) to a number field, counting an empty field as 0. Recipes add editable steps without removing existing actions; field updates and messages go before a final navigation step. Review the plain-language summary and Preview generated script before saving. Adding or previewing a recipe does not run it.
Variables hold a value, such as a score, lives, or whether a door is open, from card to card without a field to put it in. Set a variable, Add to a variable and Reset all variables are steps, and the Count in a variable recipe adds 1 to one (score unless you name another). A variable needs no setting up: it is empty (counted as 0) until a step sets it, and its name ignores capitals. Each person has their own, for each stack, kept in this browser: they last through reloads and from card to card, and a Reset all variables step starts a game over. To show a part only while a variable has a value, use Visible when in the inspector. Under Only when…, choose Check: A variable to test one instead of a field, and use is more than or is less than to compare a field or variable with a number (text that is not a number is never more or less than anything).
In the visual builder, choose a starter under Add a step: Go to card, Create card, Set a field, Show message, Show or hide a part, Add to a number, Wait, or Speak text; the step menu in each row offers the rest (Copy a field, Show a part, Hide a part). Wait pauses between 0.1 and 60 seconds before the next step, so a button can reveal a hint, wait 2 seconds and hide it again. Speak text finishes speaking before the next step runs. Each adds an editable step. The When clicked, this button will list explains the sequence in plain English, including conditions, as you edit. Field updates, messages, and audio steps are inserted before a final navigation or card-creation step so they run before leaving the card. You can still reorder steps with Move up and Move down.
Under Only when…, choose equals, does not equal, contains, is empty, or is not empty. Text comparisons are case-sensitive; empty means an empty value, not spaces. Check can also be Whether a card was visited: give a card number or name and choose was visited or has not been visited — each person's visits to the stack are remembered in their browser, the card they are on counts, and Reset all variables forgets them (all but the current card). Add another condition adds up to four more checks, and Run when chooses whether all of these are true or any one of these is true. Otherwise picks a step to run instead when the check fails — Right! or Try again, open the door or say it is locked — and, like going to a card, an Otherwise that goes to a card or creates one must be on the last step. Test conditions on this card checks the current field values and explains which steps would run or be skipped without executing actions. Conditions depending on an earlier field update are marked for runtime verification, since writes may be normalized or rejected. This dry run does not validate destinations, layouts, or saving; save the script and try the button to verify the full workflow. Changing the sequence clears the previous test results.
Save actions saves the generated script directly. Choose Done in the toolbar to run your button. For code editing, expand Edit script (_hyperscript). Use generated script copies your actions there for further editing; choose Save script when ready. Replacing a hand-written or manually changed script asks for confirmation; editing an unchanged generated script stays in the visual builder.
Scripting fields & text
Stack variables: wyldcards.variable('score') answers a value as text ('' when never set), wyldcards.setVariable('score', 0) sets one, wyldcards.addToVariable('lives', -1) adds to one (a missing or non-numeric value counts as 0), wyldcards.resetVariables() forgets them all (or resetVariables('score') just one), and wyldcards.variables() answers them all as {name: value}. wyldcards.visited(3) or visited('Treasure room') answers whether this person has opened that card of the stack (by number or name, ignoring capitals); a full resetVariables() forgets visits too. They belong to the person browsing, per stack, and are kept in this browser; every change sends wyldcards:variable to the document with event.detail.name and .value.
wyldcards.addTo('Score', 1) adds a number to a field and saves it, counting an empty or non-numeric field as 0; addTo('Score', -1) subtracts. The visual builder's Add to a number step and Keep score recipe use it.
A checklist field adds items(name) (each item’s line, text and done), lines(name) (just the texts), checked(name, lineOrText), check(name, lineOrText, done), checkAll(name) and uncheckAll(name), doneCount(name), itemCount(name), doneLines(name), and the same addLine(name, text), removeLine(name, lineOrText), moveItem(name, lineOrText, by) and setLine(name, lineOrText, text) a list uses — setLine leaves a tick where it was. Moving an item, by dragging it, with ⌥ and an arrow, or by moveItem, sends wyldcards:move to the field with event.detail.line (where it is now), .from, .text and .total. Editing an item’s text, by hand or by setLine, sends wyldcards:edit to the field with event.detail.line, .text and .was for what it said before. Ticking an item sends wyldcards:check to the field with event.detail.line, .text, .done, .doneCount and .total. field(name) answers a checklist’s text with its marks on it, so setField(name, field(name)) changes nothing; setField also takes an array of texts or of {text, done}. A locked checklist is read-only to the reader, but a script can still tick it, as it can a locked checkbox.
A dropdown field answers field(name) with the option picked ('' for none), and setField(name, 'Done') picks one and saves it. options(name) lists its options.
A styled paragraphs field adds paragraphs(name) (each paragraph's style, label and text) and setParagraphs(name, [{style: 'character', text: 'JANE'}, ...]). field(name) answers the stored text with its [style] markers, and setField takes that text, plain lines (each becomes a paragraph of the default style) or the same list setParagraphs takes. Changing a paragraph's style sends wyldcards:style to the field with event.detail.style, .label and .text.
Lyrics are measured the way the Songbook app measures them, from spelling: wyldcards.syllables('beautiful') is 3 (a line counts word by word), wyldcards.syllableBreak('melody') is ['me', 'lo', 'dy'], wyldcards.rhymes(lines) gives each line a letter it shares with the lines it rhymes with (or null), and wyldcards.rhymeScheme(lines) writes the shape as ABAB, with X for a line that rhymes with nothing. wyldcards.meter('song') reads a field part by part — in a styled paragraphs field the section paragraphs name the parts and only lyric paragraphs count (and those of any style written as section or as lyrics) (pass {section: 'scene', lyrics: ['dialogue']} for others); in any other field a [Chorus] line or a blank line starts a part — and returns [{label, lines, meter, scheme, syllables, words}], each line with its text, broken text, syllables and rhyme letter. wyldcards.lyricParts(text) does the same to text you already have. They are estimates: English spelling only hints at how a word is sung.
wyldcards.changeCase(text, 'title') changes the case of text the way the paragraph bar's Aa does ('upper', 'lower', 'title' or 'sentence'). wyldcards.startSprint(25, 'song', {button: 'Sprint'}) starts a writing sprint of that many minutes on this card's field. The named button shows the time left while the card is open. When the time is up, the sprint says how many words were written, whichever card of the stack is open. wyldcards.sprint() returns the running sprint ({minutes, left, clock, words, here, card}) or null, and wyldcards.stopSprint() ends it early without a word. A sprint is kept in this browser, so it carries on from card to card.
wyldcards.compareText(first, second, {left: 'Draft', right: 'Song', styled: true}) compares two texts line by line, the way the Songbook app compares two songs, and returns {rows, onlyLeft, onlyRight, changed, identical, summary, sheet}. Each row has its left and right line (null on the side without it), a kind of same, changed, onlyLeft or onlyRight, and for a changed line a diff with the removed and added words. styled reads both texts as styled paragraphs, without their style marks; sheet writes the differences out for answer. wyldcards.trackWriting('song'), called when a card opens, counts changes to that field's words toward the writing streak, and wyldcards.streak() returns {current, longest, days, today, wordsToday, headline}, where headline reads 3 days in a row or No streak going. The streak is kept in this browser.
wyldcards.stats('song') measures a field the way the Songbook app's statistics sheet does and returns {words, uniqueWords, lines, blankLines, characters, charactersNoSpaces, syllables, longestLine, longestLineWords, sections, labeledSections, readingSeconds, readingTime, empty}; wyldcards.textStats(lines) does the same for text. Sections are runs of lines with a gap between them, unless the song names its sections (a [Chorus] line, or a styled field's section paragraphs): then the names are counted, plus one for pickup lines above the first. A styled field counts only its lyric paragraphs. wyldcards.outline('song') (and outlineOf(lines)) returns the parts to jump between, [{title, lines, paragraph, labeled}] — the named sections, or with none, every line standing at the left margin — and wyldcards.showParagraph('song', part.paragraph) scrolls to one and puts the caret at its head. wyldcards.addSection('song', 'Verse') puts a section paragraph named for the next of that kind (wyldcards.sectionName('Verse', names) → Verse 3; wyldcards.sectionKinds() lists the eleven) in where the caret is and answers the name it wrote, or '' when the field is locked; wyldcards.moveParagraph('song', -1) moves the caret's paragraph up a place, with a chord line over it, and 1 down. wyldcards.index takes sort: 'made' for the newest card first and reverse: true to turn 'text', 'edited' or 'made' round. With perPage: 25 and page: 2 it lists one page, and its answer is {count, page, pages, from, to} for a line like 26–50 of 60. wyldcards.choose('Jump to which part?', titles) offers a list and returns the number of the line picked, from 1, or 0 when it is dismissed. wyldcards.chooseMany('Which songs?', titles, {action: 'Next', picked: [1]}) offers the list with a tick box a line (and Select all) and returns the numbers ticked, or an empty list when it is dismissed; wyldcards.importCards({background: 'Song'}) asks for text, Markdown, Word or HTML files and adds what is in them as new cards on that background, after the last card already on it: each heading goes to the title field, fields are matched by name, and the rest goes into the largest text field (in a styled paragraphs field, a [Chorus] line becomes a section paragraph). It resolves to {created, first, names}, {error}, or null when no file is chosen. wyldcards.markOnly([2, 5]) marks just those cards, by number, so Pages' marked cards only or wyldcards.moveMarkedCards acts on them. wyldcards.folderTree(paths) turns folder paths such as Road songs/Night drives into one row a folder, each under its parent, as [{path, name, depth, indent}], and wyldcards.refolder(path, from, to) gives a path once folder from is renamed or moved to to (null when the path is not in it). wyldcards.setLabel('count', '86 words') changes what a button reads until the page is left, saving nothing, for a readout a script keeps current. wyldcards.lockField('song', true) closes a field to typing and false opens it again; it lasts as long as the page, so keep the choice in a checkbox and apply it on openCard. wyldcards.noise('rain') starts a bed of noise — rain, waves, hush or rumble, with an optional volume from faint to full or 0.05–1 — or changes the one playing; call it from a click, since a page may not make a sound by itself. wyldcards.stopNoise() fades it out and wyldcards.noisePlaying() returns {sound, volume} or null. wyldcards.index('songs', {sort: 'edited', stamp: true}) lists the card last written in first and ends each line with when that was; wyldcards.editedStamp(date) writes such a stamp itself. wyldcards.plainText('song', {leave: ['chords'], gap: ['section']}) gives a field's words as plain text, a line per line, leaving out the styles named and opening the gap styles with a blank line. wyldcards.share(text, title) opens the system share sheet, or copies where there is none, and resolves to 'shared', 'copied' or ''; wyldcards.copyText(text) only copies. wyldcards.deletedLines('song') lists the lines changes took out of a field on this card that are not in it now, as {text, style, line, after, before, when, stamp, author}, and wyldcards.restoreLine('song', row) puts one back where it stood, answering 'after', 'before', 'start', 'end', or '' when the field is locked.
wyldcards.replaceText('song', 'old', 'new', {matchCase: true, wholeWords: true}) replaces every match in a styled paragraphs field, the way the Songbook app's Replace All does, keeping each paragraph's style and highlight; it returns how many it replaced, or -1 when the field is locked. wyldcards.caretParagraph('song') says which paragraph the caret is in (or was last in), counted from 0 as wyldcards.paragraphs lists them, or -1; each line wyldcards.meter gives from a styled field carries the same number as paragraph, so a reading can start where the caret is. wyldcards.recentCards({field: 'title', background: 'Song', unless: 'Archived', limit: 12}) lists the cards written in most recently, newest first, as [{n, label, edited, stamp}], where stamp says when (9:41 AM, Yesterday).
Messages & chunks
System messages, like HyperCard
Besides openCard and closeCard, a card hears openStack and closeStack when you arrive from or leave for another stack, openBackground and closeBackground when the background changes, newCard when a card is made from this one and deleteCard just before this one is deleted. idle arrives about once a second while you are browsing and not typing — enough for a clock: on idle make a Date then wyldcards.setField('clock', it.toLocaleTimeString()). Messages bubble the usual way, so a stack script can answer all of them.
Chunks, like HyperCard
HyperTalk's word 2 of line 3 works on any field. wyldcards.chunk('word 2 of line 3', 'notes') reads it, wyldcards.setChunk('line 2', 'notes', 'Buy milk') puts text into it and saves the field (add 'before' or 'after' to put it there instead), and wyldcards.deleteChunk('item 2 of line 1', 'notes') takes it out, along with its return, comma or space. A chunk is a char, word, item or line — by number, as a range (line 2 to 4, char 3 to last), or as first to tenth, last, middle or any (the last word of line 1). wyldcards.numberOf('words', 'notes') counts them, and numberOf('items in line 3', 'notes') counts inside one. Pass {text: '…'} instead of a field name to work on text a script already has; setChunk then answers the new text without saving anything. Putting into line 5 of a two-line field adds the empty lines in between, as HyperCard did. Items are split at commas; wyldcards.itemDelimiter(';') changes that until the next card opens.
Field messages
A field you can type in hears openField when the cursor goes into it, then closeField when the cursor leaves having changed the text (event.detail.text and .was) or exitField when it leaves nothing changed. In a text, multi-line or rich text field, Return sends returnInField (with event.detail.line, the line the cursor is on), the keypad's Enter sends enterInField and Tab sends tabKey (event.detail.shift for Shift-Tab). Those three arrive before the key does anything, so a handler that ends with halt the event keeps the new line from being typed or the Tab from moving on: on returnInField halt the event then wyldcards.go('next'). Leaving a card closes its open field first.
wyldcards.send(message, detail, target) sends a message straight away; the target is a part name, 'background', 'stack' or me (the card when left out).
Connection. wyldcards.online() says whether there is a connection, and a card gets wyldcards:online and wyldcards:offline messages as it changes.
More script commands
The mouse
Parts hear mouseDown, mouseUp, mouseEnter and mouseLeave. See Mouse Messages & Swipes.
More commands
wyldcards.moveCard('Songs') moves this card to the end of the stack named Songs and goes to the card that took its place; wyldcards.copyCard('Songs') leaves it and puts a copy there. Pass {placement: 'start'} to put it first, or {go: true} to follow it. wyldcards.moveMarkedCards('Archive') moves every marked card ({action: 'copy'} copies them). Each resolves to {stackName, n}, or {error} when there is no stack you can edit by that name.
wyldcards.go('home') opens the Library; wyldcards.setTheme(name) and wyldcards.textSize(value) set the appearance and the text size. wyldcards.speak('hello') reads text aloud (wyldcards.speak(text, voice, {rate: 1.25}) picks a voice and a speed from 0.5 to 2; it resolves false once wyldcards.stopSpeaking() cuts it off). wyldcards.markCards('yes', 'done') marks every card whose done field contains yes (leave the field out to search everything; leave both out to mark every card); wyldcards.unmarkAll() clears the marks. wyldcards.hilite('done', true) ticks a check box or radio button (or highlights a plain button) and saves it, wyldcards.popup('section') and wyldcards.setPopup('section', 'Chorus') read and choose a popup menu's option, and wyldcards.enable('next') and wyldcards.disable('next') change a button's reach. A ticked toggle sends wyldcards:hilite; a popup choice sends wyldcards:select.
Working with other cards
wyldcards.field and wyldcards.setField reach the card on screen. wyldcards.data reaches every card in this stack without going to them. Each call waits for its answer, so its result can be used on the next line. The first argument is the stack: pass '' (a script reaches only its own stack; naming another is refused). Name a card by its number, its name or its uid.
wyldcards.data.cards('', {background: 'Scene', where: {Location: 'Kitchen'}, sort: 'Page'})lists matching cards, each withname,number(its place in the whole stack, whatever was filtered out),uid,marked,backgroundand afieldsobject.wherewants a field to equal a value (or any of a list of values) in any case;containswants the text anywhere in it;marked: truekeeps marked cards;background: 'Scene'keeps the cards on that background;sorttakes a field name (numbers sort as numbers),'name'or'number', withorder: 'desc'to reverse it;limitandoffsetpage through them.wyldcards.data.count('', {where: {Status: 'Draft'}})counts them;wyldcards.data.find('', {Name: 'Jane'})returns the first match ornull;wyldcards.data.card('', 3)returns one card andwyldcards.data.field('', 'Jane', 'Status')one field's text.wyldcards.data.setField('', 'Jane', 'Status', 'Cast')andwyldcards.data.setFields('', 'Jane', {Status: 'Cast', Agent: 'Kim'})change a card's fields; if any value is refused (a required field left empty, a number that is not a number) nothing is saved.wyldcards.data.newCard('', {name: 'INT. KITCHEN - DAY', fields: {Location: 'Kitchen'}})adds a filled-in card at the end, or after the card named inafter.wyldcards.data.linked('', 'INT. KITCHEN - NIGHT', 'Cast')returns the cards in this stack that a linked cards (or card link) field names, in the order they were linked;wyldcards.data.linkedFrom('', 'Jane', {field: 'Cast'})returns the cards linking to one.setFieldon a linked cards field takes card uids, one per line, or a list of cards.
A script works with your access, whoever wrote it: it changes fields only where you can type and adds cards only where you can edit. A call that fails stops the handler and shows its reason in the browser console; catch it with catch to handle it yourself. Changes made through wyldcards.data are saved but not redrawn on the card you are looking at — use wyldcards.setField for that card.