Release notes
What's new
Every release of PasteDaemon and what it changed, newest first. These are the same notes the app shows before it updates itself — if you're on an older version, everything since it is waiting for you under Check for Updates in the menu bar.
Latest release
2.3.0
New Features
Apple Intelligence
- New Apple Intelligence Actions. They run anywhere an action can: the overlay, the menu bar, a trigger or a shortcut. Typed in the search bar, they wait for ↩.
rewrite,ask,extract,classifyandtranslateneed to be told something — a style, a language — so to put one on a trigger or a shortcut, save it as a pipeline action of your own,| rewrite concise, and use that. - Proofread and summarize
$1 | proofreadfixes the spelling, grammar and punctuation of what you copied and leaves your wording alone;$1 | summarizesums it up in a few sentences, and$1 | ocr | summarizedoes the same for a screenshot. Both run on your Mac — nothing you send them leaves it — and need macOS 26 with Apple Intelligence switched on. On any other Mac they say what's missing, and the rest of PasteDaemon works exactly as before. whenreads a date out of loose words."Friday noon Pacific" | whengives2026-10-02T12:00:00-07:00, ready fortotz,dateaddorstrftime. It reads everything the date filters already understand, plus "two weeks ago" and about a hundred holidays — "Halloween at 8pm", "Easter", "Thanksgiving", "Chinese New Year", "Rosh Hashanah", "Eid al-Fitr", "Diwali" — on any Mac, and asks Apple Intelligence about the rest.- Rewrite, ask and title.
$1 | rewrite concise— orfriendly,professional,simple— rewrites what you copied and keeps its names, numbers and links.$1 | ask "turn this into a haiku"does whatever you write, and$1 | headlinegives it a short title. - Turn text into data.
$1 | extract name email companypulls those fields out of an email signature or an order confirmation into a hash, ready forfillorto-json.$1 | classify bug feature questionpicks one of your labels.$1 | tabulateturns "we need 3 bags of ice and 12 sodas" into rows you cansum, and$1 | taskslists the to-dos in your meeting notes. - Points, replies and translation.
$1 | pointslists the main points of what you copied, and$1 | reply "yes, Thursday works"drafts a reply to a message. On macOS 26,$1 | translate frenchtranslates with macOS's own translation — no Apple Intelligence needed, just the languages downloaded in System Settings. - Long-running actions. An answer from the model takes a few seconds, so these don't hold the overlay open: it closes at once, a message says the pipeline is running, and another says when the result is on your clipboard, ready to paste. Mark any action of your own as Long-running in the Actions pane to have it behave the same way — handy for a slow script.
More ways to read what you copied
These work on every Mac, with no Apple Intelligence, and can run from a trigger like any other action:
redactmasks names, emails, phone numbers, addresses and card numbers before you paste something into a ticket or a chat —$1 | redact, orredact email phonefor just those. Read the result before you share it: it finds emails and numbers exactly, but can miss a name.extract-dates,extract-phonesandextract-addressespull every date, phone number or postal address out of what you copied, as a list.spellcheckfixes the spelling macOS would underline, instantly.languagesays what language something is in, anddedupedrops repeats that differ only in capitals or punctuation.
Triggers
- Fire a trigger on what a pipeline says. A new condition, Pipeline gives true, runs a pipeline over what you copied and fires the trigger when it answers
true. The newisandmatchesactions give that answer:| language | is frfires on French,| matches (?i)^invoiceon a regex, and| classify work personal | is workasks Apple Intelligence. Pair| language | is frwith a pipeline action of your own —| translate english— and everything you copy in French comes back in English. Type$1 | language | is frin the search bar to see what a condition would say before you save it. - Fire a trigger on where you copied from.
| from Safarianswerstruewhen the copy came from Safari. Name an app as the history shows it or by its bundle ID, and name several to match any of them:| from Terminal iTerm2. Combine it with the rest,| from Slack && $(| matches ^https?://), or turn it round with| !from Xcode. - Combine conditions with
!,&&,||and^^.| language | !is enfires on anything not in English, and| !is fr && is eschecks the copy twice. The right side of&&and||only runs when it has to, so a slow check on the right costs nothing when the left has already decided.
Shortcuts
- Transform the selected text in place. Three new filters work on the app in front:
copycopies what you have selected,selectreads it without touching your clipboard, andpastepastes the result back. Bindselect | upper | pasteto a shortcut with _Run a Pipeline_, and the chord upper-cases whatever is selected, where it is.pastepasses its text on, soselect | summarize | paste > $notespastes the summary and keeps it too. - A pipeline can start with a filter.
now | strftime %H:%Mandcopy | upper | pastework as written — the|in front is optional.
- Run a pipeline from a shortcut. In Preferences → Shortcuts, _Add a Shortcut… → Run a Pipeline_ binds a chord to a whole pipeline —
$1 | trim | upper,| summarize— that runs on what you copied without opening the overlay, no pipeline action needed.
A time limit for background runs
- Stop a run after in Preferences → General puts a limit — 5 seconds to 5 minutes — on everything that runs without you watching: a long-running pipeline or action, anything a shortcut runs, and your triggers. A run still going by then is stopped, scripts and all, your clipboard is left as it was, and a message says which one failed because of timeout. Off unless you set it.
- The newest run wins. Start a pipeline, an action or a shortcut while another is still going, and the first one is stopped — a message says which — instead of both finishing and fighting over your clipboard.
API and MCP Server
- Running a pipeline through the API no longer freezes PasteDaemon while it runs, and
translateworks through the API and for assistants too.
Tweaks
- Text in quotes can hold a date or a sum.
"2026-08-11" | strftime %Aused to stop with a complaint about a missing space around the-; a-,+,*or/inside quotes is now just part of the text. - UUIDs are tagged
uuid, including the ones already in your history, so#uuidfinds them all. One made by an action, such asuuid, is also described by its version — UUID (version 4) — as a copied one already was. - Type
uuidand the top row is a fresh UUID. ↩ pastes it. Typingnowshows the time the same way. The search results for the word are still there, underneath. uuidpreviews as you type, and ↩ pastes the UUID you saw. Scripts that preview live are no longer run again when you press ↩, so the result pasted is the one on screen.- Mark your own actions "Works without input". A script or pipeline action with that box ticked starts a command even when the clipboard history is empty or holds a picture, and shows what it makes when you type its name alone.
uuid | uppernow works on an empty history too. - Remove several variables at once. In Preferences → Variables, ⌘-click or ⇧-click to select more than one row, then press the minus button.
Release
2.2.0
New Features
Tags
- Tag your copies. Press ⌘⇧T in the overlay to tag the highlighted row — pick from the tags you already use by typing a few letters, or type a new one. Choose a tag the row already has to take it off. Write several at once as
#work,#to-read, and press ↑ in the empty field to bring back tags you gave recently. - Some copies are tagged for you, including the ones already in your history: links get
url, email addresses (or a comma-separated list of them)email, colours like#1e90ffcolor, file pathspath, JSONjson, picturesimageand files copied in Finderfiles. A copied colour shows itself in a circle beside its row. - Find them by tag. Searching for a tag lists everything carrying it, so
urlfinds every link andurl githubthe GitHub ones. Typing the start of a tag —ima— offers#imageat the top of the list; press ↩ to see everything under it, or ⇥ to add another tag.#url,#macfinds copies with both. ⌘F lists all your tags — type a few letters to find one — and shows the copies under the one you pick, most recently changed first. Write#work,#invoiceto see what carries both. - Tag everything that matches.
| tag-all invoice #worktags every copy in your history matching a pattern. While you type it, the list shows exactly which copies it will tag.untaganduntag-alltake tags off again —| untag-all . #draftremoves#draftfrom everything. Leave the tag off to remove every tag —$1 | untag— and| untag-all --clear-all-tagsclears your whole history. - Tag many copies at once. ⌘⌥T lets you pick out rows — search to narrow the list, ⌘A to take everything it shows — then press ⇥. The search bar then holds
@<$2, $5> | tag #; type the tag and press ↩. - Tag from a command or a trigger. The new
tagaction files what it runs on:$1 | tag #work. A trigger can tag each copy it matches through a pipeline action such as| tag #ticket— the Triggers help page shows how. tag,untaganddescribeon a list act on what's in it.@<$2, $5, $9> | tag #worktags those three copies, not the list, and| describe Invoice linksgives each of them that description. Pick the rows with ⌘↩, press ⇥, then type the rest. Items written as plain text are skipped.- Tags are suggested as you type them in a command. After
tag,untag,tag-alloruntag-all, typing#lists the tags you've already used; ⇥ takes the highlighted one.
Descriptions
- Describe your copies. The new
describeaction gives a copy a few words saying what it is —$1 | describe Invoice for Acme— shown under its row. A trigger can describe each copy it matches through a pipeline action such as| describe Jira ticket. Searching finds descriptions too, though a copy whose text matches always comes first. - Copies describe themselves. Things whose text doesn't say what they are now get a description you can search, unless a trigger has already given one: colours get their name (
#1e90ffis _dodger blue_), emoji and symbols their Unicode name (_face with tears of joy_), timestamps — Unix numbers or written like2026-09-21T14:13:20Z— their date in words, UUIDs, JWTs and hashes what sort they are, and cron lines what they mean in words (_at 09:00 on weekdays_). Code is described by its language when it's clear, text in a language you don't read by that language, and pictures by what's in them. It all happens on your Mac.
New Standard Library Actions
- Resize a picture you copied. Type
$1 | resize 50%in the overlay to put a half-size copy of your latest screenshot on the clipboard, ready to paste.resize 800makes it 800 pixels wide andresize x600600 high, both keeping its shape;resize 800x600makes it exactly that size. The original stays in your history, and the preview shows the new size before you press ↩. Save a size you use often as your own pipeline action —| resize 50%ashalf— and$1 | halfdoes the same. - More ways to change a picture.
crop 800x600+100+50cuts out a rectangle, andcropon its own trims the border off a screenshot.rotateandflipturn it,pngandjpeg 80change its format, andfit 2MBshrinks it until it's small enough to attach.stripremoves the location and camera details from a photo — and every one of these leaves them out, so nothing you resize or crop carries them either. Chain them:$1 | crop | jpeg | fit 1MB. - Read what's in a picture. A screenshot of a QR code or barcode is now described by what the code says — _QR code: https://…_ — so typing part of the link into the overlay finds it. A Wi-Fi code is described by its network name, never its password.
$1 | qrhands you what the code says in full.$1 | colorslists the colours a picture is mostly made of as hex codes, and$1 | data-urigives you the picture as adata:URI to paste into HTML or CSS.
API and MCP Server
- The local API and MCP server catch up. Scripts can now read and set an entry's tags and description, list the history by tag (
?tag=work), tag everything a search finds in one call — the API'stag-all— and list every tag in use. Hashes can be written and read back as JSON with their keys in order, lists holding lists or hashes keep their shape, and a script action's _Writes_ and _Run for what it does_ settings can be set and read. Assistants can search by tag, see each copy's tags, and read a hash key by key. - Make a QR code. Copy a link and pick _Make a QR code_ from the menu bar — or type
$1 | qrcode— and a QR code of it is on the clipboard, ready to paste into a slide. - Scripts can put formatted text on the clipboard, and run pipelines. The local API's clipboard call takes HTML, rich text or Markdown as well as plain text, so what it puts there pastes as bold, links and headings. A new call runs a pipeline or an action on text you send and hands back the result without changing anything. It runs the scripts PasteDaemon ships, such as
upperandjson, but never a script action of your own. Assistants connected over MCP can do both too: run your actions on text, and put formatted text on the clipboard by writing Markdown.
Tweaks
- ⌘↩ now picks rows for a list the way ⌘⌥T picks rows to tag. Press ↩ on each row you want (or search and press ⌘A), then ⇥ to go back to the search bar with the list written in, like
@<$2, $5, $9>. Nothing is sent until you press ↩ in the bar, so an extra ↩ while picking just picks one more row. - Find pictures by size. Search
900x600(or900×600) to list every picture copied at that size. Copies whose contents match — a screenshot with those numbers in it, say — still come first. - One menu for kinds and tags. ⌘F now lists
#text,#url,#image,#filesand#variablesat the top, followed by your tags, so choosing#urlor#imagefinds every link or picture — including ones copied before tags existed. Combine a kind with a tag, like#text,#work. The _All_ row is gone: choose what you're showing again to see everything.#variableswith nothing typed now lists all your variables. - Search by the app you copied in. Type an app's name —
safari,slack— to find what you copied there, listed after anything whose text matches. Add a word to search inside it:chrome githubfinds the GitHub links you copied in Chrome. - The overlay remembers where you put it on each display. It opens on the screen your pointer is on, where you last left it there — or in the middle of that screen if you have never moved it there. Plugging in or unplugging a monitor no longer moves it.
- Shortcuts are written with ⌘ first everywhere, the way the help pages write them: the overlay's footer now says ⌘⇧T rather than ⇧⌘T, and the menu bar says ⌘⌥C for the overlay.
Release
2.1.0
New: hashes, templates and nested lists
- Variables can hold values under keys. A hash is written
%name, and%contact{email}is one of its values. Build one by sending things to its keys from the search bar —$1 > %contact{email}— or write one out in full:%<name: $1, email: $2> > %contact. A key can hold text, a list, or another hash:%contact{address}{city}.$contactreads the whole thing askey: valuelines, and a variable you type in that shape reads as a hash too. In the Variables pane a hash drops down to those lines to be edited.
fillturns a template into text. Every{{key}}in the text is replaced from the hash you name:$letter | fill %contactturns _Dear {{name}}_ into _Dear Ada_. A key the hash does not have is left as written, and{{address.city}}reaches into a key that holds a hash. With a hash in hand it works the other way round —%contact | fill "Hi {{name}}"— so@people | map fill "Hi {{name}}"writes a line for each person.
fill --askasks for what's missing. Placeholders the hash can't fill come up in a small form, and ticking _Save as hash_ keeps your answers for next time. Leave the hash out —$letter | fill --ask— and it asks for every placeholder. It asks when you run something yourself — the search bar, an abbreviation, a shortcut — and never on a copy unless the trigger says--ask-in-triggers.
json-hashreads JSON.$1 | json-hash > %orderturns copied JSON into a hash you can reach into by key, with the keys in the order they were written. Arrays become lists and numbers keep exactly the digits they had.
- Paste a spreadsheet, get records. Copy a range of cells and
$1 | tsvturns each row into a hash keyed by the header row, so$1 | tsv | map fill "Hi {{Name}}"writes one line per row.csvdoes the same for comma-separated text.
- Whole-item list tools.
filterandrejectkeep or drop items matching a pattern,sort,uniqueandsort-byput a list in order —sort-by namefor a list of hashes — andflatten,take,dropandzipreshape one.sum,avg,minandmaxwork out a column of numbers.
- New text staples.
extract-urlsandextract-emailspull every link or address out of what you copied, ready to paste one at a time.replaceis a find-and-replace with no regex to escape,truncate 80shortens with an ellipsis,camelandpascaljoin the other case styles,html-escapeandhtml-unescapedeal with entities, andepochturns a date into a Unix timestamp.
to-json,keysandvalues. Write a hash or a list back out as JSON, with the keys in order, or take a hash apart into its keys or its values.
- Reach inside with a path.
@people[0]{name}is the first person's name, and%order{items}[-1]{sku}the last line's SKU —[…]into a list,{…}into a hash, as deep as it goes. A path is somewhere to store something too:"9" > %order{items}[0]{qty}.
- Lists can hold lists and hashes.
@<@<a, b>, %home>is a list with a list and a hash in it, and JSON full of objects becomes a list of hashes.@people[0]hands back the hash itself. Everything that reads a list as text reads it just as before.
Release
2.0.0
New Features: PasteDaemon Sync
- Your Macs can share what PasteDaemon holds. A new Sync pane switches syncing on for a Mac, and from then on your actions, triggers, abbreviations and themes, your variables and secrets, and the clipboard history with its pins follow you between Macs through iCloud. The settings that mean the same thing everywhere come too; the ones that are about one machine — where the overlay sits, the API port, whether the menu bar icon is showing — stay where they are.
Each Mac has to be switched on from that Mac, and the pane lists the ones that are, so a Mac you have stopped using can be switched off or forgotten from any of the others.
What goes to iCloud is encrypted end to end, with the keys in your iCloud Keychain rather than on a server. Secrets are sealed for each Mac separately, so reading one still asks for Touch ID on the Mac in front of you.
Two Macs that have been apart are merged rather than one of them winning. The same variable name keeps both values, the newer one current and the older one behind it; two different actions written under one keyword are both kept, and the second gets a number on the end; two different expansions for one abbreviation are both kept, with the later one switched off rather than deciding by coin toss which fires mid-sentence. PasteDaemon says so when it has had to do any of that.
Release
1.9.0
New Features
- The overlay has themes. A new Theme menu in Preferences → Appearance sets what the overlay, the small HUD and the tutorial card are drawn in. Paper is light and warm, keeps the translucency, and gives every row a little more room to read in. Graphite is dark and solid, with a copper highlight and nothing of the desktop showing through. Automatic — what you get unless you pick something else — uses Paper when your Mac is set to light and Graphite when it is set to dark, so the panel is never the wrong way round for the screen it is on.
The overlay will look different the first time you open it after this update. If you would rather have exactly what you had, choose Classic: it is the old look, and the only theme that uses the accent colour you set in System Settings.
The preferences window is unchanged — it is a standard macOS window and keeps the standard macOS look.
- Make a theme of your own. The new Appearance pane lists the themes down one side and draws the selected one down the other, so you can see a theme before you switch to it. + turns the selected theme into one you can edit: light or dark, translucent or solid, your own accent colour, how the chosen row is highlighted, filled or outlined badges, and a compact or roomy text size. A preview at the top of the pane shows what you are doing as you do it.
Colours are written the way you would write them down — #1A6B64 — so you can paste one in from wherever you decided it.
The four themes the app ships cannot be edited directly, which is what lets them be improved in later versions without your copy holding the old one back. Duplicating is how you change one, and the copy is yours: nothing in a future update will overwrite it.
Release
1.8.3
New Features
- Write in Markdown, paste it as formatted text. A new Markdown section in the standard library adds
md-rich, which reads what you have written as Markdown and puts what it renders to on the clipboard — so pasting into Mail, Notes, a document or a chat window gives real headings, real bullets and real links rather than the#and-that describe them.md-htmlis the same conversion handing back the HTML itself, for a template or a CMS field.
Beside them are the everyday ones: md-quote and md-unquote for wrapping text in a blockquote and getting it back out of a reply, md-bullet and md-numbered for turning lines into a list, md-code for fencing a snippet, md-table for turning a range copied out of a spreadsheet into a Markdown table, and md-escape for text that has to survive being pasted somewhere that renders Markdown.
The fiddly parts are handled: a quoted blank line keeps the blockquote in one piece, a code fence grows longer than any run of backticks inside it, and a table's rows are padded and its pipes escaped so it actually renders.
Bugfixes
- A script that writes HTML or rich text keeps its accents. Text produced by a script action with Writes set to HTML came back with every non-ASCII character mangled —
caféstored ascafé. The markup on the clipboard was always right; it was the item's own text that was read wrongly.
- Folders in the Actions and Triggers panes can be selected and moved. A folder is now a row like any other: click its name to select it, click its chevron to open or close it. What is selected is what the toolbar acts on, so − removes a folder as readily as an action — everything inside moves up rather than going with it — and the arrows move a folder among the folders beside it.
Drag a folder into another folder to file it there, or drop it on the empty part of the list to bring it back out to the top level; its contextual menu does the same without the dragging. Selecting a folder shows it beside the list, with its name, a menu of everywhere it could sit, and how much is filed inside it.
The folder button on the toolbar now adds a folder beside what is selected rather than inside it, so pressing it twice gives two folders side by side. Previously it added inside the selected action's folder, which meant that once everything you had lived in a folder there was no way to make a second one at the top level at all.
Release
1.8.2
New Features
- PasteDaemon can make a sound when it does something. A new Sounds pane in Preferences gives five of its doings an alert sound: something is copied, PasteDaemon pastes, an action runs from one of your shortcuts, a trigger fires, an abbreviation is recognised. The app has no Dock icon and no window of its own, so most of what it does happens while you are looking at something else — the HUD says what happened and has to be looked at, and a sound says that it happened and does not.
Off until you switch it on, and one switch turns the lot off again. Each of the five has its own switch and its own sound, chosen from the alert sounds macOS ships — plus any of your own in ~/Library/Sounds — and picking one plays it so you can hear what you are choosing.
Release
1.8.1
New Features
- Clicking a row in the overlay uses it. A click pastes the item, runs the action or takes the variable — the same thing
⌘1–⌘9and↩have always done to a row. The press still moves the highlight, so the click lands where your hand is; dragging a row out is unchanged.
- The overlay can be moved, and stays where you put it. Hold
⌘and drag the panel anywhere on screen — the whole panel is the handle, rows included — and that is where it opens from then on. Centre Again in Preferences → General puts it back in the middle. Unplug the monitor you left it on and it opens centred until that monitor is back.
- The overlay can be kept up. Switch on _Keep the overlay up until it is closed_ in Preferences → General and it no longer closes the moment you click another window: it floats beside what you are working on until
⎋closes it or you use a row. While it is up, a paste goes into whatever app you were last in — so the panel can sit open beside a document while you take several things out of it, one after another.
Release
1.8.0
New Features
- Clicking a row in the overlay uses it. A click pastes the item, runs the action or takes the variable — the same thing
⌘1–⌘9and↩have always done to a row. The press still moves the highlight, so the click lands where your hand is; dragging a row out is unchanged.
- The overlay can be moved, and stays where you put it. Hold
⌘and drag the panel anywhere on screen — the whole panel is the handle, rows included — and that is where it opens from then on. Centre Again in Preferences → General puts it back in the middle. Unplug the monitor you left it on and it opens centred until that monitor is back.
- The overlay can be kept up. Switch on _Keep the overlay up until it is closed_ in Preferences → General and it no longer closes the moment you click another window: it floats beside what you are working on until
⎋closes it or you use a row. While it is up, a paste goes into whatever app you were last in — so the panel can sit open beside a document while you take several things out of it, one after another.
- A script action can now put formatted text on the clipboard. Set _Writes_ to HTML or rich text and what the script prints is read as that markup rather than kept as characters — so a script can turn a copied URL into a real hyperlink, or produce bold, colour and links that paste into Mail, Notes or Pages as formatting. The item's value is still the plain text underneath, so the row reads and searches as it always did and anything that takes only text still gets it. Until now nothing could make formatting; an action could only pass on or strip what a copy already had.
- A script can be run for what it does rather than what it says. Turn on _Run for what it does — discard the output_ and nothing the script prints is read: the text it was given carries on untouched. Scripts that file, open or send something no longer empty the clipboard by having nothing to print.
Release
1.7.0
New Features
- More than one trigger can now fire on a copy. Every trigger whose conditions hold runs, top to bottom, each one asked about the text the one before it left behind — so a trigger that trims a link and a trigger that strips its tracking parameters no longer have to be the same trigger. Each trigger has a new checkbox, _stop evaluating triggers if fired_, that ends the run where it fires and leaves the ones below it unconsulted. The triggers you already have arrive with it ticked, so nothing you set up changes what it does; untick one and the triggers below it start being consulted after it fires. Triggers you make from now on start with it off.
Release
1.6.6
Bugfixes
- A long item no longer hangs the app when a script action runs on it. Something like
$1 | base64-decodeon a clipboard item over about 64K left the search bar showing a preview that never arrived, and took the rest of the bar with it — the next thing typed, and ↩, waited behind it for as long as the app was open. Items of any size now go through a script and come back.
Release
1.6.5
- Hold ⌘ and tap C twice to add what you copy to the end of the copy before it. Three pieces from around a page — a name, an order number, a line of an address — become one item and one paste, with nothing to open and no mode to be in. What you append is not kept as a second item, and the one it grows keeps what it said before among its past values, so an append you did not mean is one step from being undone. It is off until you switch it on, under _Copying_ in Preferences → General: it changes what ⌘C does in every app, so nothing turns it on for you.
Release
1.6.4
- The chord that gathers copies is remembered again. Rebinding it in Preferences worked until the next launch, when it went back to ⌘⌥A — the new chord was written to disk and never read back.
- The Abbreviations pane now says when another app is stopping them. An app with a password field open switches on _secure input_, which stops macOS telling anything else what you type — including PasteDaemon, so no abbreviation can expand. Some apps forget to switch it back off, and until now there was nothing to see: the pane looked well and nothing happened. It now names the app holding it, and clears as soon as that app lets go.
- An update is now offered in a window rather than an alert, with the release notes in a box of their own under what is on offer — the shape every other Mac app's update offer has. The answers are the ones they were, and closing the window means Later.
- The notes in it are shown the way they were written: bulleted lists as bullets, bold as bold, and commands in the app's typeface for them. Until now they arrived as the raw Markdown they are written in, so a release described itself with its asterisks and backticks showing.
Release
1.6.3
Give this heading a version number before publishing — publish.sh will not build a feed for a version this file does not mention.
- Lists now count from zero, everywhere.
item 0is the first element,index 0is the whole list, and the item numbers in the Variables pane start at 0 to match.itemandindexcounted from one before this release, so a command that saysitem 2now takes the element after the one it used to.-1is still the last item, as it always was, andfirstandlastare unchanged.
Positions saved on an action are converted for you — an action set to item 2 in the Actions pane is now set to item 1, and takes the same element it always did. A number written inside a pipeline is not, because that is your text to edit and rewriting commands automatically is not something worth risking: if you have an action, trigger or abbreviation whose pipeline says item 2 or index 3, subtract one from it. Asking for an item past the end now names the numbers the list does run between, which is the quickest way to spot one you missed.
- One item of a list can also be reached with brackets:
@shopping[0]is the first,@shopping[-1]the last. It is@shopping | item 0written the way you thought it, and reads well where the item is what a command starts from —@shopping[-1] ++ "!". - Searching the overlay now lists your variables above the history. A name you chose says more about what you are after than a word that happens to be inside something you copied. Actions stay last, and an empty bar is still the history alone.
- The update dialog now shows what changed, including for the releases you skipped.