Release notes

What's new in Spine

Every public release, newest first. Each version has its own link — hit Copy link to share one directly.

Version 1.1.13

Latest

Built with the final iOS 27 tools: play and resume no longer hold up the screen while the audio system wakes, and AI summaries use iOS 27's model the way it was designed to be used.

  • Play doesn't wait on the audio system. Every time Spine starts playing — at launch, when you press play, and when audio comes back after a call or a Siri request — it first has to wake the phone's audio system. On iOS 27 Spine now does that in the background instead of stopping everything until it's done, so the app stays responsive while it happens. If you change your mind in that instant — pause, skip to another book — Spine goes with the last thing you asked for rather than starting the audio you'd already cancelled. Nothing changes on iOS 26.
  • AI summaries think where they're meant to. On iOS 27, the system language model can reason through a request before it answers. Spine now asks it to do that on its own separate channel, so the planning never ends up in your summary, and falls back to a plain request on devices whose model can't. Spine also uses iOS 27's new error reporting to tell a busy model from a refused prompt, while iOS 26 stays exactly as it was.
  • Built for iOS 27. Spine is now built only with the final Xcode 27 tools, and the stopgaps that let it build with the old tools are gone. It still runs on iOS 26. The warning you see before connecting to an Audiobookshelf or Grimmory server over plain HTTP is now tied to the server you're actually adding, so the two can no longer fall out of step.

Version 1.1.12

Books in an iCloud folder can be taken offline, a book in several parts plays through to the end again, and a download damaged by a rate limit repairs itself.

  • Download a book from your own folder. If you point Spine at a library folder kept in iCloud Drive, Download was greyed out — Spine treated anything in a folder you chose as already on your phone. For iCloud Drive that isn't true: what's in the folder is a placeholder, and iOS fetches the audio when something asks for it and throws it away again when space runs short. Which is why those books played perfectly at home and not at all on a plane. Download now works for them, and takes a real copy into Spine's own storage where nothing can reclaim it. If a file hasn't come down from iCloud yet, Spine waits for it rather than saving the placeholder.
  • A book in several parts plays through to the end. With the sleep timer set to stop at the end of a chapter, a book made of separate files stopped at every chapter rather than once — each new part counted as a fresh start and re-armed the timer. Worse, stopping that way left the player sitting on a part it had already finished, where the play button does nothing at all and only quitting and reopening Spine got you moving again. The timer now arms once for the book, and stopping for it loads the next chapter ready to go, so play picks up where you left off.
  • A download spoiled by a rate limit fixes itself. Versions up to 1.1.10 could save a server's "too many requests" reply as though it were the chapter — a book that looked fully downloaded but fell over partway through. 1.1.11 stopped that happening again, but couldn't mend a book it had already happened to; the advice was to delete the download and fetch it again. Spine now recognises those stand-ins for what they are: it plays those chapters from your library instead of choking on them, reports the download as incomplete rather than finished, and tapping Download collects only the parts that were spoiled.
  • Cloud Libraries. Torbox has moved one level in: Settings → Library Sources → Cloud Libraries → Torbox, mirroring the way Self-hosted Libraries already gathers Audiobookshelf, Grimmory and BookOrbit behind a single row. The Torbox screen itself is untouched — your API key, AirLock, Curation Sync and sign-out are all exactly where you left them, one tap further along — and the new row tells you what's connected and how many books it holds without your having to open it. It's a tidier Settings list today and room to grow tomorrow: when a second cloud service arrives, it becomes another row in there rather than another entry in your Settings.
  • A source badge that doesn't overclaim. Torbox books used to carry an iCloud symbol, which implied a connection to Apple's iCloud that was never there. They now show a cube — on the badge in the corner of a library tile, in Storage, and beside the service in Settings.
  • The library filter names the service. The chip that narrows your grid to Torbox books read Debrid; it now reads Torbox. It says which service it actually means, which will matter more once there's more than one to choose between.

Version 1.1.11

A download that reports itself finished really is finished — and two books that share a name no longer share a folder and overwrite each other.

  • Downloads that say they're finished really are. A title in many parts could report itself completely downloaded — the full size, the green tick, the lot — while the files on your phone were nothing of the kind. When Spine asked for all of a book's parts at once, the server answered most of those requests with a few bytes of "too many requests, try later", and Spine filed each of those refusals away as though it were the chapter it had asked for. Progress looked perfect because it was being added up from what the catalog said each part weighed, not from what had actually arrived. Three things are fixed: a reply that isn't the audio is never kept as a chapter, a part that gets turned away waits a moment and asks again by itself instead of being lost, and the progress you see is the bytes genuinely on your phone. Spine now also collects a long book's parts a few at a time rather than all in one go, which is what provoked the refusals to begin with. One part failing no longer throws away the rest, either — whatever did arrive stays playable offline, and tapping Download again picks up only what's still missing. This was never only a Torbox problem: an expired session on your own Audiobookshelf, Grimmory or BookOrbit server produced exactly the same silent result, and Spine now retries those too, since asking again is what fetches a fresh sign-in. One thing Spine can't do is repair a title already downloaded this way — remove that download and get it again.
  • Two books with the same name stop overwriting each other. Spine files a download under the book's author and title, and two books that worked out to the same name were handed the same folder — most likely a collection where two of its folders carry the same title. They then wrote their chapters over one another, and because a folder can only say which single book it belongs to, whichever finished second took ownership: the first was left looking like a download whose files had vanished, from a book you'd never touched. Same-named books now get folders of their own, chosen the same way every time, so it doesn't matter which one you download first. Books whose folders you've renamed yourself keep the names you gave them, and a folder you've moved out of Spine's way is left alone rather than written into.

Version 1.1.10

The internal check that sent Spine into a launch crash-loop on iOS 27 is gone, collections that mix layouts finally come out as the books they actually contain, splitting or merging applies to a single folder instead of the whole download, returning to your library is instant again, and the corrections you make stay yours.

  • A launch crash on iOS 27. On iOS 27, Spine could die a second or two into launch and relaunch straight into the same crash, over and over, which made it effectively unusable. The cause was an internal safety check firing on a thread that iOS 27 newly uses for drawing; that check is gone.
  • Date Added keeps a download's books together, in order. A download's books used to interleave with everything else added in the same stretch, and books added at the same moment could come back in a different order each time you opened the app. Spine now keeps a download's books adjacent in Date Added and orders them deterministically — and when one download holds several series, each series stays together and in sequence instead of shuffling their volumes by number.
  • Your series edits win. Spine now merges its own automatic series data with what you've typed, and your correction is the one that shows: renumber a book and it moves to that spot instead of leaving a phantom entry behind, and a book Spine's matcher never placed in a series at all can now show one because you added it. The Details screen reads that merged result too, rather than a separate source that never saw your edits.
  • Mixed collections group the way they look. A Torbox download holding a folder per book — most of them a single file, one of them a novel split into three parts — used to leave you choosing between one enormous book and one book per file, and neither matched what was in there. Spine now reads the folder structure instead of guessing from the file list, so a collection like Dune arrives as the twenty books it actually contains, with the three-part novel kept together as one. Folders that are really disc sets — CD1, CD2 — are recognised as a single book rather than two.
  • Split and merge apply to one folder, not everything. Because a large collection can be several shapes at once, the choice is now made per folder. Open Update Metadata on a book inside one and Merge gathers just that folder's books — three, say, rather than all twenty — with the folder named in the sheet so you can see what you're about to change. Folders you haven't touched keep the grouping Spine worked out for them. Where a download really is one shape throughout, the controls act on the whole thing and say so plainly.
  • A way back to automatic. If a grouping choice turns out wrong, Use automatic grouping re-scans the download and lets Spine work it out again — the quickest fix for a collection whose folders differ. It appears only where there's actually an override to clear, rather than sitting as a dead row on every book. Grouping choices stay on the device you make them on for now; your other devices keep their own until you make the same choice there.
  • Tidier titles from folder names. Titles taken from folders and files no longer carry their sort prefixes, so 04 - Hunters of Dune becomes Hunters of Dune, and a series name repeated on every volume is dropped. Numbers that belong to a title are left alone — 11.22.63 and 4.50 from Paddington keep their names.
  • Going back to your library is instant again. Tapping back to the Library tab used to lock the app up for a couple of seconds, and covers would blank out and slowly refill every time. Both had the same cause: each visit re-saved Spine's bookkeeping files once for every single audio file in your library, rewriting the whole file each time — so a large library meant thousands of writes and hundreds of megabytes of disk churn, on the very thread drawing the screen. Spine now writes each of those files once per scan, and only when something actually changed, so returning to a settled library does no disk work at all. Covers were never really the problem: they were already in memory, just stuck behind the freeze. The bigger your library, the more you'll notice — and the same fix covers your local folders, Audiobookshelf, Grimmory and BookOrbit as well as Torbox.
  • Covers stay where you've already seen them. Scrolling a long library, or tabbing away and back, used to blank covers you'd only just looked at and load them again. Spine was decoding every thumbnail at nearly twice the size any iPhone can actually display, so a full screen of artwork couldn't fit in the space set aside for it and each new row pushed an older one out. Tiles are now decoded at the size they're drawn, and the space scales with your device, so a large library holds three to six times as many covers as before. Artwork also arrives much smaller over the network — a cover that used to download at 600 KB for a thumbnail now takes about 37 KB — and the blurred backdrop behind a book's details, which nobody can see detail in anyway, stopped claiming the largest share of all. One deliberate trade, and a much smaller one than it was: Spine only releases its covers once you've been away about half a minute, so locking your phone and coming straight back finds every cover exactly where you left it. A genuinely long stretch away still clears them — that's what keeps a long spell in the background from getting Spine shut down mid-chapter — so the first screenful after hours away fills in over a moment.
  • Clearing a book's metadata sticks now. If Spine matched a book to the wrong title, clearing it was pointless — the very next library refresh looked the book up again, got the same wrong answer, and put it straight back. Spine now remembers that you rejected a match and stops guessing for that book, with Try Matching Again on the same screen for when you want it to have another go. Books Spine simply can't find anywhere stop being re-asked on every single refresh too, and if that's because your connection was down rather than because the book doesn't exist, Spine can tell the difference and doesn't hold it against the book. For a book that comes from your own library server, clearing also sets that server's details aside, and the screen says so.
  • Resetting a Hardcover match no longer touches your other devices. Tapping Reset to Automatic on a book whose only correction was its Hardcover link could tell your other devices to discard everything they knew about that book — hand-typed title, author, narrator, series, and their own Hardcover link. It now only affects the device you're holding, and the screen says so, since your other devices keep their match until you reset it there too.
  • Only your own corrections travel between devices. Curation Sync is careful to share the edits you made and never Spine's automatic guesses — but adding your own cover art used to quietly count as editing the whole book, so whatever Spine had guessed for the title, author, narrator, series and ASIN got shared alongside your picture as though you'd typed it. A cover is now just a cover: it stays on the device you added it to, and it no longer speaks for the rest of the book. If you'd already uploaded covers, the entries that went out beforehand can't be told apart from real edits, so Settings → Torbox → Curation Sync → Remove all Spine tags followed by Sync Now is the way to start those books over.
  • Your place in a book reaches your own server sooner. If you listen through Grimmory or BookOrbit, Spine now sends your position the moment you pause or finish a chapter, instead of waiting for its next scheduled update. Audiobookshelf already did this. It matters most if you listen offline and then reconnect — there's less chance of iOS closing Spine in between and losing that last position on the server. Your place inside Spine was never at risk either way.
  • Correct any detail yourself, and only your corrections travel. Title, author, narrator, series and series number are now editable straight from Update Metadata — tap a row and type. Empty rows show up too, so a book missing its author is something you can fill in rather than just look at. The part that matters underneath: Spine keeps what it matched separately from what you typed, so fixing one field no longer sends Spine's guesses for everything else to your other devices — which is what used to let one device's guess quietly overwrite a correction you'd made on another. Each field you change shows what Spine had matched underneath it, with Revert to Spine's value to put it back exactly. Pick a different edition from Find a Better Match and your typed fields survive it; the rest of the book updates around them. And clearing a book's metadata clears your own edits along with everything else — the confirmation says so now, because it didn't before.
  • Spine stops confidently attaching the wrong book. In a big series collection, a folder like Dune 29 - Sea Child reaches Spine's matcher as just "Sea Child" — two words, no author — and no catalog has that novella. Spine used to take whichever near-miss came back first, so four books in a 32-book Dune set quietly ended up with another book's cover, description and length: "Sea Child" became a Scientology memoir, and Treasure in the Sand became a completely unrelated thriller. Spine now notices when it only has a couple of words to go on and checks the candidate really belongs to the series the folder says it does. Those books come back as no match instead — which you can fix from Update Metadata, and which is a great deal better than a wrong one you never noticed. Books Spine matched correctly are unaffected.
  • Grouping choices and signing out stay on your own device. Two more ways a change on one device could tell the others to forget a book are closed. Clearing a grouping choice — Use automatic grouping included — used to leave a stale claim behind that could turn into "discard this book's details everywhere", if you happened to be offline between the two taps. An edit you'd made but hadn't synced yet could do the same after signing out of Torbox and back in. Both now stop short of it, and the corrections you've made on your other devices stay exactly as you left them.
  • A library scan you walked away from can't erase anything. Spine only tidies up a book's saved details once it's sure it saw your whole library. Leaving the Library tab mid-scan used to let a half-finished list pass for the whole thing, so books that simply hadn't loaded yet could look as though they'd gone — dropping edits waiting to sync, or removing a book from your other devices if it had nothing else saved. A scan that stops early now counts as nothing at all. Leaving the tab also genuinely stops the scan once your library has loaded once, rather than letting it run on re-saving files you're no longer looking at.
  • Copy Hash for Torbox books. Long-press a Torbox book in your library and Copy Hash puts its torrent hash on the clipboard — handy for pasting into Torbox's own site, or back into Spine's search to adopt it again.

Version 1.1.8

Your metadata corrections can now follow you between devices, signing out of Torbox is safer for everything else in your library, and a torrent hash can become a book without leaving Spine.

  • Add a book straight from a hash. If someone hands you a torrent hash or a magnet link, you no longer have to leave Spine to use it. Paste it into Search and a Torbox section appears telling you what it actually is — the title, how many files, how big — with the first couple of filenames so you can check it's the right pack before committing to it. Tap Add to Library and it lands in your Torbox account instantly, because Spine only offers that button when Torbox already holds the torrent cached; there's nothing to wait for. When it isn't cached, Spine says so plainly instead of parking a download that may never finish. Paste a hash you already own and it tells you, and offers to open the book instead. Magnet links, the older base32 hashes, and Torbox links all work, and bare numbers are deliberately ignored — searching for 1984 still finds the novel.
  • Curation Sync. Fix a title, author, narrator, or series, add an ASIN, or link a book to Hardcover, and that correction can now travel to your other devices through your Torbox account. Turn it on in Settings → Torbox → Curation Sync — it's off by default. Once it's on, sending looks after itself: an edit is pushed the next time your library refreshes, and a pending edit survives a relaunch, so nothing sits waiting on you to remember it. Switching the feature on — or tapping Sync Now on that screen — additionally pushes the curation you'd already built up beforehand. Receiving needs nothing either: your other devices pick up what's waiting for them as their libraries refresh, and the newer correction wins when two devices disagree about the same book. If Torbox turns a write down, Spine stops retrying until you tap Sync Now, rather than pressing an account that has already said no. Only edits you actually made are shared, never Spine's automatic matches, so one device's guess can't quietly overwrite another's correction. It's worth knowing exactly how far this reaches: it syncs to any device signed in with the same Torbox API key, even one on a different iCloud account, and anyone who holds that key can read and change what's stored this way. If you'd like to see precisely what gets stored, Tag Extract decodes any of those tags in your browser — nothing is uploaded. Cover images you upload stay on the device you uploaded them from, and if you've split one download into several books, that choice travels but your other devices won't apply it for you. Change that choice later — merging a 38-part download back into a single book, say — and only the books you actually have now are shared, rather than the ones that layout replaced.
  • Signing out of Torbox is safer for everything else. Disconnecting your Torbox account used to be riskier than it looked: it could clear metadata for your other libraries, remove downloads you'd gotten from other sources, and reset your listening progress. Signing out of Torbox now leaves all of that alone — it only forgets what belongs to Torbox.

Version 1.1.6

Purged Torbox titles restore themselves, AirLock gets a home of its own, and the library shows at a glance what's protected.

  • Books Torbox purged come back on their own. Torbox deletes a download's files after 30 days of inactivity, and Spine used to show those titles as if nothing had happened — they'd simply fail to play. Spine now reads each Torbox title's real availability and re-adds the purged ones in the background, at most two at a time, cached hashes first, so your active slots aren't swamped. A restored book is the same book: it keeps its progress, bookmarks, metadata, and Hardcover link, and holds its place in Recently Added rather than reappearing as a new arrival. Give-up is deliberately patient — six hours of genuinely zero progress, not a passing "stalled" reading, because titles that report stalled with no seeds routinely finish anyway.
  • You can see which books are unavailable, and why. Unavailable titles dim their cover and carry an Unavailable capsule in grid view and a label in list view. The detail page says which stage a book is in — "Play it to download it again," "Spine is downloading it again — this can take a while," or, when the files are gone and nobody's sharing it, that it couldn't be recovered — because a book stuck unavailable with no explanation reads as a bug.
  • Clean Up on Torbox. Titles Spine gave up on keep their Torbox record so a future retry stays possible, which means their torrents keep holding active slots. Clean Up on Torbox in the multi-select More menu is the deliberate, confirmed way to reclaim them. It's enabled only when every selected book is a Torbox title Spine already failed to restore, so nothing playable can be discarded by accident.
  • AirLock a title, or a stack of them. AirLock exempts a Torbox download from the 30-day purge. Long-press any book for Add to AirLock / Remove from AirLock, or select several and use the action bar's More menu; the detail page shows an AirLock — kept permanently indicator. Bulk runs group by parent title so a split bundle issues one call, and report real counts on partial success — Torbox has no quota endpoint, so running out of AirLock space mid-run is a normal outcome and claiming success would be a lie. Removal always asks first, because un-airlocking restarts the 30-day countdown from the title's last download date.
  • Keep every audiobook in AirLock, automatically. Torbox purges downloads that sit inactive for 30 days; AirLock exempts them. Rather than locking titles one at a time, switch on AirLock All Audiobooks and Spine locks everything in your library, then quietly locks each new audiobook as it finds it — paced gently so Torbox never rate-limits you, and picking up where it left off if a pass is ever interrupted partway. Turning it off simply stops adding new titles: books already in AirLock stay locked, because removing one restarts its 30-day countdown from its last download date. If Torbox ever turns a request down — running out of AirLock space, say — Spine records the reason in Torbox's own words and stops retrying until you ask it to try again. A request that never made it off your phone on a weak connection says exactly that, rather than blaming the server.
  • A home for AirLock. Settings → Torbox → AirLock is a screen of its own. It shows how much of your library is protected in both units that matter — audiobooks, and the Torbox downloads they live in, which differ whenever Spine has split one download into several titles — and lists any titles that aren't locked yet, so you can catch a straggler with a tap. Add All to AirLock and Remove All from AirLock cover the whole library at once; removing always asks first, because it restarts each title's 30-day countdown from its last download date. A Pacing setting spaces out the requests if writes tend to fail on your connection.
  • AirLock keeps a log, not a pile of alerts. Locking happens in the background, and background work shouldn't interrupt your listening to report on itself. The last 100 AirLock results sit at the bottom of the AirLock screen, newest first, each marked as automatic or as something you asked for, and they survive a relaunch so they're still there when you go looking. Alerts are reserved for the actions you took yourself.
  • Group your library by AirLock. Sort → Group by → AirLock splits your shelf into AirLocked, Not AirLocked, and Other Sources, so you can see in one scroll which books are protected and which are still on the clock. Your Sort by order applies within each section, it works in grid and list view, and books from your self-hosted servers and iPhone sit in their own section rather than being mislabeled as unprotected. The option appears once Torbox is connected.
  • AI summaries stop thinking out loud. On iOS 27's system language model, a generated summary could open with the model narrating its own plan before getting to the summary. Spine now instructs against it, rejects a response that does it anyway, and invalidates the old cached summaries so they regenerate clean.
  • Updated for iOS 27. Spine adopts the current SwiftUI APIs behind availability gates, so it keeps building and behaving correctly on the new release without changing anything on iOS 26.

Version 1.1.4

A reliability fix for the library that loads on a flaky connection, plus honest numbers in Activity and Storage.

  • Your whole library shows up, even on a shaky connection. Opening Spine — or CarPlay — on spotty mobile data could leave you looking at only your downloaded books, and you'd have to pull to refresh before the rest of your library (and the car) filled in. The culprit: a refresh that couldn't reach your server sometimes came back looking like an empty library rather than a failed load, which quietly wiped Spine's saved copy of your shelf — so the next launch had nothing to show but downloads. Spine now tells the difference between "your library is empty" and "I couldn't load it," keeps your saved shelf through a bad connection, and quietly retries on its own (and again when you return to the app) until everything's back — no manual refresh needed. CarPlay follows along automatically.
  • Time Saved shows one number that means something. The Activity tab's Time Saved card listed three figures — Speed, Smart Speed, and Total — but Smart Speed was always zero (Spine has no silence-trimming feature), which made Total a duplicate of Speed. It's now a single Time Saved by Speed stat: the real hours your playback speed has given back.
  • Storage stops listing downloads that aren't there. Downloads that stalled or failed left an empty folder behind and showed up under Downloaded Audiobooks as phantom "Zero kB" rows — for books your library correctly wasn't showing as downloaded. Those rows are gone.
  • "Download 1 book," not "Download 1 books." Selecting a single book in the library's bulk action bar now reads correctly, in every supported language.

Version 1.1.3

Post-release fixes and polish for self-hosted libraries, plus a new Apple Watch companion.

  • Spine on your wrist. A new Apple Watch app lets you control playback without reaching for your phone. The Now Playing screen shows the current book's cover, title, chapter, and progress — tinted with a soft gradient drawn from the cover's own colors — with play/pause, skip back/forward (using your own skip intervals), previous/next chapter, and a one-tap bookmark, and when your phone is out of range it dims and says so. Swipe up to Continue Listening, a short list of your in-progress books each showing its cover; tap one to start it playing on your phone. The phone stays the player (no separate downloads or accounts on the watch), and the controls are fully labeled for VoiceOver and localized into German, Spanish, French, and Japanese.
  • BookOrbit playback, chapters, and downloads work across more servers. Some BookOrbit servers report a book's audio metadata in a sparser shape than Spine expected (a missing narrator list, or a chapter without full detail), which made Spine reject the entire book record — so every title showed zero chapters, failed to play with "Couldn't load chapters for this title," dropped its synopsis, and failed to download the moment you tapped download. Spine now reads that metadata leniently, so chapters, descriptions, and downloads come through even when some fields are absent.
  • Group your library by source and library. The Sort menu now has a Group by → Library option that splits the shelf into sections by where each book comes from. Servers that expose more than one library (BookOrbit, Audiobookshelf) get a section per library, headed "Source · Library" (e.g. "BookOrbit · Fiction"); sources without libraries — Grimmory, Torbox, books on your iPhone — show as a single section under the source name. Your chosen Sort by order applies within each section, and it works in both grid and list view.
  • Book descriptions from Grimmory and BookOrbit. The synopsis now shows on the detail page for self-hosted books. Grimmory's synopsis lives only on the full book record (the library listing leaves it out), so Spine now fetches it when you open a book; BookOrbit's was being fetched but then wiped by the next library refresh. Both sources now keep the synopsis — and any other detail-only field — through repeated rescans.

Version 1.1.0

A focused follow-up that adds BookOrbit as a first-class library source, polishes Grimmory, the car, and the Activity tab.

  • BookOrbit. Stream and sync from your self-hosted BookOrbit server. Add one or more servers in Settings → Library Sources → BookOrbit, pick which libraries to include, and your books appear alongside everything else in the library. Playback streams via an authenticated bostream:// proxy (Bearer token, full Range support), covers load via bocover://, and listening progress syncs both ways — position updates every 15 seconds while you listen, and resets push back to the server immediately. Session tokens are stored device-local (never iCloud-synced), and an expired session surfaces a re-auth prompt right in the player without a trip to Settings. Single .m4b files with embedded chapter markers are supported alongside multi-file books.
  • BookOrbit now wears its badge. The BookOrbit orbit icon now shows up everywhere the other sources do — on book covers, the Settings source row, and the Library empty state — and the BookOrbit filter pill appears in the Library chip strip once you're signed in, so you can narrow the shelf to just your BookOrbit books.
  • The Advanced Analytics card reads as a link. On the Activity tab, the "Last 30 days / Advanced Analytics" header now sits on a tinted accent banner with its chevron, so it's clearly tappable rather than looking like plain text floating on the card.
  • A tidier Library Sources list. Settings → Library Sources is now three rows with icons that match the rest of Settings: On This iPhone, Torbox, and a single Self-hosted Libraries row whose subtitle sums up what's connected (e.g. "2 libraries · 48 books"). Tapping it opens a sheet with Audiobookshelf, Grimmory, and BookOrbit — each keeping its own icon and connection flow.
  • Grimmory covers, managed by your server. Cover art now loads from Grimmory's (BookLore's) managed cover endpoints, with the embedded artwork as a fallback behind it, and a cache-bust so a re-uploaded cover refreshes instead of sticking. Each book also picks up its release year, genre, and publisher from the server listing. Streaming is untouched.
  • An expired Grimmory session now tells you. Grimmory's login can't refresh after a long stretch away, and playback used to just fail silently. Now the book shows a clear "Grimmory session expired" card with a Sign in to Grimmory button — re-enter your password right there and the book resumes from where you tapped, with no trip to Settings.
  • Grimmory downloads work without opening the book first. Grimmory lists books without their file details until you open them, and downloads relied on those details — so tapping Download on a book you hadn't opened did nothing and sat stuck. Spine now fetches those details as part of starting the download (the way playback already does), and if they genuinely can't be loaded it tells you instead of stalling silently.
  • Single-file Grimmory downloads finish. A book delivered as one .m4b with many embedded chapters used to stall at 0% and never download — Spine was fetching the whole file once per chapter and could never reconcile the count, so it sat "downloading" forever. Now it fetches the file once and completes correctly, and a fully-downloaded single-file book is no longer mislabeled as partial on a re-scan. (Multi-file books were never affected.)
  • No more duplicate after re-signing in to Grimmory. Signing out and back in to the same Grimmory server used to mint a new internal server identity, so your books reappeared as a second set of tiles while the old downloaded copy lingered. Spine now reuses the same identity for a given server and account, so re-signing in keeps your books — and their downloads and progress — intact, with no duplicates.
  • The last Grimmory phantom tile, cleared. A book downloaded under an older Grimmory identity (from before the fix above) could still haunt the Library as a second, un-openable tile that signing out wouldn't remove — its files were long gone but the empty download record lingered under the dead identity. Spine now hides download records that have no files left to play, and on launch sweeps away orphaned records that belong to Grimmory servers you're no longer signed in to. Books you've actually downloaded stay put — playable offline, even while signed out.
  • An Activity teaser worth tapping. The Activity tab's plain "Advanced Analytics" row and the standalone Last 30 days chart are replaced by a single teaser card — a serif title, three headline stats (time listened, daily average, day streak), and a 30-day chart — that taps straight through to the full Advanced Analytics screen added in 1.0.9.
  • CarPlay plays your downloads. When a book you've downloaded is missing from the server's current listing, CarPlay now merges that local copy in — the same way the iPhone Library already does — so it plays your downloaded file under its real progress instead of streaming a fresh, divergent copy or showing a duplicate tile.
  • Steering-wheel skip buttons work in CarPlay. The back/forward buttons on the wheel now skip by your usual interval while a book is playing. They were silently doing nothing: announcing chapter info made some cars treat those buttons as chapter navigation, a command Spine didn't handle, so the press went nowhere. The buttons now map to the same skip you get on the lock screen.
  • SF Symbols across Settings. The remaining rows in the reorganized Settings screen picked up matching SF Symbol icons, so every section reads consistently top to bottom.
  • Hardcover progress lands on the edition you're listening to. For a book whose audiobook edition exists on Hardcover (matched by ASIN), your progress could show as zero even while you listened: Hardcover pinned the book to its print edition and started a blank reading session there, while Spine wrote your real progress onto a separate audiobook session. Spine now pins the book to the audiobook edition it tracks — at the moment it's added and again on the next update for books already mispinned — so Hardcover shows the right edition with your actual percent, and no second phantom session.

Version 1.0.9

This release sharpens the parts of Spine you reach for every day. The Bookmarks Hub is rebuilt around cover art and tap-to-play, a new Advanced Analytics screen turns your listening into real charts, the Activity heatmap becomes a proper GitHub-style contribution grid, and Settings is reorganized into sections that finally group by what you're trying to do. Underneath, metadata gets a runtime you can trust and a single source for series, progress now syncs both ways with Grimmory and resets cleanly everywhere, and a long list of Hardcover and playback reliability fixes land.

  • The Bookmarks Hub, rebuilt. Bookmarks now live in a redesigned hub: every entry is a cover-led row, and tapping one starts playing that book from the exact moment you marked. An overview header summarizes the collection, and the old tag chips and group-by control are replaced by a strip of book-cover filter chips, so you narrow to a single book by sight. A new Export action stitches a book's bookmarks — quotes, summaries, and notes — into clean Markdown you can share or paste anywhere.
  • Advanced Analytics. A new screen under Activity → Last 30 days opens two tabs of native charts. My Reading shows your listening rhythm, daily averages, and streaks; Library breaks down your collection — sources, genres, decades, and a Metadata Completeness card you can tap straight through to Manage Metadata to fill the gaps.
  • A real contribution heatmap. The Activity heatmap is rebuilt GitHub-style: a fixed weekday gutter on the left, month labels that line up with their columns across the top, a rolling twelve-month window that opens on your most recent week, and a week order that follows your locale. The shape of your habit reads clearly at a glance instead of crowding at the edges.
  • Settings, reorganized. The Settings screen is regrouped into intent-based sections — Library Sources, Services, Metadata, Playback, Display & Intelligence, Data & Storage, and About — so related controls sit together. Manage Metadata is now a visible row in the Metadata section instead of a hidden three-tap easter egg, and a new Default timeline picker lets you choose whether new books open to a Book or Chapter scrubber across every surface.
  • A runtime you can trust. A book's Length now comes from a metadata provider whenever the catalog reports an accurate runtime, on the detail page and in the metadata editors alike. Multi-file books anchor their chapter-span estimate to that trusted total, so the time you see lines up with the edition you actually own — no more a single .m4b reading "1 chapter · n/a" before a lookup.
  • One source for series. Series information now comes from the metadata catalog rather than the reading-progress connection. A Part of <Series> carousel on the detail page lays out the whole series in order — the books you own and, as dimmed tiles, the ones you don't, which tap straight into Discover → Download. Series also drive catch-up recaps and auto-queue. Hardcover is reserved for Discover and play/finish tracking.
  • Update Metadata, streamlined. The Update Metadata sheet is now a hub: a cover, a read-only Details card, and a short list of workflow rows. Find a Better Match and the Hardcover relink each moved to their own focused sheet, and both gained an exact catalog-ID lookup so you can pull the precise edition. Runtime and chapter counts now match the title page, the displayed Length follows the edition you actually matched, and a Clear-confirm guards against wiping a value by accident.
  • A completion pill on the cover. In-progress books now show their completion percentage as a small translucent capsule in the bottom-left corner of the cover, mirroring the source badge — so you can see how far along you are without opening the book.
  • Two-way progress, finished. Grimmory progress now syncs both ways: Spine pushes your position back as you listen — debounced during playback and flushed on pause, chapter change, and background — and a recurring reconcile pulls in changes made elsewhere, newest position wins. Reset Progress now truly clears the server and survives the next sync, instead of getting quietly pulled back.
  • Grimmory sign-in stays on its device. Grimmory server registrations are kept on the device that created them and no longer sync over iCloud, so a paired iPad stops showing a phantom "connected" server it was never signed into. Stale synced copies are purged on update.
  • Hardcover, more reliable. Single-file books no longer report 0% forever — progress is computed correctly, with a page-based fallback when no audiobook edition exists. Spine now keeps one reading row per book instead of spawning a new one every launch, stamps your start date once, and auto-strips a leading "Bearer " from a pasted token so authentication stops double-prefixing. Wrong matches (a search for New Spring landing on a comic) are fixed with ASIN-first matching plus a manual relink, and Spine backs off after a rate-limit response instead of hammering the server.
  • Torbox books play offline. A downloaded Torbox book now plays from its local copy when the network is down or the server is unreachable, instead of showing a blank page.
  • No more chapter explosion. A chaptered audiobook that ships as several .m4b files is no longer mis-split into one library entry per file.
  • Quieter under the hood. Recommendation lists are de-duplicated so they can't trigger duplicate-row glitches, iCloud key-value writes are coalesced to stop a sync storm, and logging was tidied across the app.

Version 1.0.8

A new self-hosted library joins the lineup, the car gets serious, every author becomes a place you can explore — and Spine now speaks four new languages. Grimmory servers now sit alongside Audiobookshelf as a first-class source — streaming, two-way progress, two-way bookmarks, covers, and a multi-server sign-in screen, all with the same feature set you already know. CarPlay is rebuilt around a three-tab Home / New / Library layout that loads even before you open your phone and resumes right where you left off — plus in-car speed control, one-touch bookmarks, a full chapter list, previous/next chapter buttons, and the iOS 26 dashboard widget. Tap any author name and a new sheet opens their photo, bio, and the rest of their work. And the whole app — interface and on-device AI alike — is now localized in German, Spanish, French, and Japanese.

  • Spine speaks your language. The entire interface is now localized in German, Spanish, French, and Japanese, alongside English, and follows your device's language automatically. The on-device Apple Intelligence features write in it too — your "previously on…" series recaps, description rewrites, and bookmark summaries come back in your language instead of always in English. Book titles and author names are never translated, and the verbatim quote captured in an insight bookmark stays exactly as the narrator said it.
  • Playback speeds you choose. The five speed chips on the player used to be fixed at 0.75× / 1× / 1.25× / 1.5× / 2×. Now you set them yourself — from Settings → Experience → Playback Speed, or the edit icon on the player's speed sheet. Your presets drive the in-player chips, the CarPlay speed cycle, and the Lock Screen rate options from a single source, so the paces you actually use are always one tap away and sync across your devices.
  • Read before you grab, in Discover. Discover results now expand in place. The title you searched shows a synopsis and structured details, and every result picks up a "learn more" line that fades into a chevron — tap it to pull that audiobook's full description without leaving the sheet. Anything that won't load just says so quietly and never gets in the way of sending a book to Torbox. When Apple Intelligence rewrites that opening synopsis, a "Show original" toggle flips back to the publisher's words — the same control the book detail page already uses.
  • Edit Metadata, with the match explained. When you search in Edit Metadata, every result now wears a source tag and quick facts like chapter availability, runtime, Unabridged / Abridged, series, genre, narrator, and year. Pick the right match at a glance instead of tapping through each one. It's all derived from the results Spine already fetched, so there's no extra wait.
  • Chapters, even when the file forgot them. A single-file audiobook that ships without embedded chapters now gets them filled in automatically from the catalog, matched by the book's catalog ID. Chapters now land the moment you refresh a book's metadata — even before Spine knows its exact runtime — instead of waiting for the next play, and they're quietly re-checked against the real audio the first time you do play it. A built-in safety check compares the total runtime and refuses a chapter set from a different edition, so marks never land in the wrong place — and if nothing confident is found, the book is left exactly as it was.
  • Tap an author, explore their whole shelf. The author's name is now tappable — under the cover, in the Details card, on a "group by author" shelf header, and in the "More by author" carousel — and opens an author sheet built from catalog data: their photo, a biography, the genres they write in, and similar authors as a grid of round avatars you can tap to hop straight to. The books are laid out in the same three-up grid as your Library: the ones you already own (with progress and download badges) up top, other books by the author below, and tapping either opens the book or the download flow.
  • Author bios, summarized on-device. When Apple Intelligence is enabled, a long catalog biography is rewritten into two or three clear sentences, with the same "Summarized with Apple Intelligence · Show original" toggle the book descriptions use. It runs entirely on the device — nothing about the author or your library leaves the phone — and falls back to the full original bio whenever the model isn't available.
  • Player controls, now labeled. The five capsule controls on the now-playing surface — Speed, Sleep, Mark, Chapters, Boost — wear small captions underneath, laid out in even columns so they stay aligned and legible on narrow phones instead of leaving you to guess the glyph.
  • Sharper metadata matching. Spine consults various metadata providers when filling in covers, narrators, series, and catalog identifiers, then validates title and author overlap before accepting a match so a miss never leaves a book worse off than before.
  • Manage Metadata, in bulk. Tap the version number in Settings three times to open a hidden tools screen, and pick Manage Metadata. It lists every title from one source at a time — cloud or local — with green/gray pills showing exactly which fields are filled in: cover, description, author, narrator, genre, series, and chapters. Refresh one book, or tap Update All to sweep the whole source in the background, one title at a time and cancellable. Refresh only fills gaps — it never overwrites a value you've already set — and quietly pre-fetches chapters by catalog ID. Server-owned metadata remains canonical for supported self-hosted sources.
  • Grimmory as a library source. Settings → Library Sources → Grimmory takes a server URL, username, and password, and you can register more than one server. Spine pulls every audiobook from each server, streams over authenticated Range requests, and renders covers from the Grimmory host with the usual fallback chain behind it. Both single-file M4Bs and multi-file folder books play correctly, with chapters resolved from the server. Sign-in is per device — each phone or tablet keeps its own session, so listening on one device never knocks another offline, and a session can refresh itself even while the screen is locked mid-playback. Read-only — Spine never modifies or deletes anything on your server.
  • Grimmory progress sync, both ways. The first time Spine sees a Grimmory book it pulls the server's saved position; after that it pushes your position back as you listen — debounced during playback and flushed on pause, chapter change, and background. Listen on the web, pick up in Spine, and vice versa.
  • Grimmory bookmark sync, both ways. Bookmarks made on the server land in Spine on the next refresh, and bookmarks you create in Spine push back to Grimmory. Spine still owns the rich fields (voice notes, transcripts, AI insights); the core (time, title) mirrors to the server.
  • CarPlay now-playing controls. The now-playing screen in the car gains a button row: cycle playback speed through your rate presets, drop a one-touch bookmark, step to the previous or next chapter, and open a chapter list — without reaching for your phone. Skip forward/back honor the interval you set in Settings, and changing that interval on your phone updates the car buttons live, without a restart.
  • In-car chapter list. Tapping the chapters button opens the full chapter list on the CarPlay screen with the current chapter highlighted, so you can jump around a long book while driving.
  • CarPlay dashboard widget. On iOS 26, the Continue Listening widget appears on the CarPlay dashboard and resumes playback with one tap.
  • CarPlay, rebuilt around three tabs. The car interface is now organized like a podcast app. Home shows what you're in the middle of (Continue Listening) and anything you've saved for later. New lists your most recently added books. Library breaks the collection into Now Listening, Available Offline, Saved for Later, and Finished. Tap any title to start or resume — and ask Siri for a specific book any time.
  • CarPlay works before you open your phone. Your books, covers, and titles now load in the car on a cold start without first opening the Spine app, and tapping a book resumes from exactly where you left off on your phone instead of starting over. Covers and metadata fill in on their own as they load.
  • The Lock Screen scrubber matches the player. The Lock Screen's progress bar now follows the same Book / Chapter scope you pick in the full player — flip to chapter view and the scrubber spans just the current chapter, on the phone and in the car alike, updating live without a restart. And the current chapter name now shows on every surface that has room for it — Lock Screen, CarPlay, the mini-player, and the full player — whenever the book has chapters.
  • Smaller polish, fewer flashes. The five capsule controls on the player no longer flash a dark background as a chapter rolls over mid-listen, and the little pills scattered across Edit Metadata, Manage Metadata, Discover, and the author sheet were sized down so their labels stop wrapping on narrow phones. The book's Details card now hides the Size row when a server source doesn't report a file size, instead of showing a misleading "Zero KB", and the metadata shortcut there reads "Update Metadata" with its icon properly aligned.
  • Big server libraries load lighter. Audiobookshelf and Grimmory libraries with thousands of titles now sync far more efficiently. Spine seeds each page of books in one batch instead of saving book-by-book, and on Audiobookshelf it pulls all your server-side progress and bookmarks in a single request per refresh rather than one request per book. A 5,000–6,000-title server that used to feel sluggish on first sync now stays responsive.
  • Widget tile, fixed. The Continue Listening widget's app badge and play button no longer look washed out on a dark Home Screen tile.

Version 1.0.7

The Library tab grows up: multi-select for batch actions, group-by-series with the books you don't own surfaced inline, and group-by-author shelves. Audiobookshelf now accepts plain-HTTP servers so Tailscale and LAN setups work without a public TLS cert. This release also reaches well beyond the Library — live reading-progress sync to Hardcover, a bedtime-grade sleep timer, skip buttons you can size yourself, and Activity stats that now follow you across devices through iCloud.

  • Multi-select in the Library. A new Select button (or long-press a row's context menu → Select) puts the Library tab in selection mode. Tap covers to multi-select; a bottom action bar lets you mark finished, save for later, download, reset progress, or remove from Torbox — all in one tap. Bulk download queues two books at a time and asks for confirmation when you've picked five or more. Each section header gains a Select All / Deselect All affordance while you're in select mode. The mini-player fades while selecting so playback keeps going without competing for the bottom of the screen.
  • Sort and group, separated. The Library sort menu now has two independent axes: Sort by (Date Added / Title / Duration with an asc/desc toggle on each) and Group by (None / Author / Series). Pick any combination. The legacy seven-case sort migrates on first launch so existing preferences carry over.
  • Group by Series, with the gaps shown. Pick Series and the Library section reorganizes into one shelf per series. Owned books render normally; books in the same series you don't own yet appear next to them as faded "ghost" tiles pulled from Hardcover's catalog. Tap a ghost to drop into Discover with the title pre-seeded for download. Series with only one owned book and no Hardcover catalog fold into a Standalones shelf at the bottom. List mode supports the same grouping. If you haven't connected Hardcover, a one-tap inline prompt explains what you're missing.
  • Group by Author. Mirrors the series treatment without the unowned-titles layer. Each author with two or more owned books gets their own shelf; everyone else lands in an "Other Authors" catch-all at the end. List mode supported.
  • Built for large libraries. Spine now stays usable when your library is in the thousands of books. The Library tab paints progressively as books load — both on cold launch (the on-disk cache streams in batches) and on first-time sync (each page from Audiobookshelf appears as it arrives) — instead of blocking on the whole library. A slim "Loading library…" strip appears above the list while loading and hides once books are visible. Section grouping (Now Listening, In Progress, series shelves, author shelves) recomputes off the main thread so scrolling stays smooth while batches land. Spotlight indexing was also rewritten to push only the books that actually changed, so a metadata prefetch on a 5,000-book library no longer triggers a full domain rewrite.
  • Audiobookshelf over plain HTTP. Self-hosted Audiobookshelf instances reached over Tailscale, LAN, or any private overlay network where the host doesn't carry a public TLS cert now connect cleanly. The Server URL field shows an inline lock.slash notice when you've typed an http:// URL, and the first time you hit Connect on a given HTTP host Spine asks "Connect over unencrypted HTTP?" with a single confirmation. Acknowledged hosts skip the alert on future sign-ins; switching to a new HTTP host re-prompts.
  • Torbox expired titles, recovered in one tap. When a Torbox download expires from the cache, Spine now detects it on the next refresh and surfaces a one-tap re-download instead of failing silently when playback starts.
  • Haptics for deliberate confirmations. Chapter jumps in the chapters sheet, applying a metadata match, saving a bookmark, arming or disarming the sleep timer, and successful Audiobookshelf sign-in all fire a .success haptic — and a sign-in failure fires an error pattern. The Library bulk-action bar's icons also carry small text labels (Finished, Save, Download, More) so the action is obvious without guessing the SF Symbol.
  • Discover, friendlier when Torbox isn't connected. The Discover sheet's Send button now hints inline (and stays disabled) when no Torbox API key is configured, so the flow doesn't end in an unexplained failure.
  • Live reading-progress sync to Hardcover. When Hardcover is connected, Spine now pushes your actual listening position — not just a "currently reading" / "read" status flip. Each book is matched to its exact Hardcover audiobook edition by ASIN, so the percentage Hardcover shows lines up with what Spine shows. Progress flushes on pause, on chapter change, every ~60 seconds while you're playing, and on finish — the same cadence as Audiobookshelf sync. It's automatic whenever Hardcover is connected; there's no extra switch to flip.
  • A bedtime-grade sleep timer. The familiar Off / 5–60 min / End-of-chapter dropdown in the player is unchanged, but Settings → Sleep adds four things you'd actually use at night. Shake to reset or extend uses the motion sensor, so it works with the screen locked and audio playing in the background (off / low / medium / high sensitivity). A configurable fade-out replaces the fixed 15-second tail. An auto-sleep window arms the timer for you when you start playing during your chosen wind-down hours. And an optional "Extend / Reset" prompt appears when the timer ends, so dozing through the last minute doesn't cost you your place.
  • Skip buttons you can size. Settings → Experience now lets you choose how far the skip-forward and skip-back buttons jump. Your pick drives the full player, the mini-player, the Lock Screen, CarPlay, and the AirPods multi-tap gestures — and the button glyph updates to match the interval you set.
  • Listening stats that follow you. Your Activity — listening time, streaks, books finished, and the time saved by Smart Speed and faster playback — now syncs through your private iCloud account, so it survives reinstalling the app and shows up on every device. Time from each device adds up, and your existing on-device history migrates in automatically the first time you launch the update.
  • Series shelves, in your language. When you group the Library by series, the faded "ghost" tiles for books you don't own yet now filter to your device's language, so an English library no longer fills up with foreign-language editions of the same series.
  • Calmer chapter controls. The previous/next-chapter buttons are lighter-weight icons and gray out when the current book has no chapters, so the control row reflects what's actually there.
  • Library that stays put. The list keeps showing your books during a background pull-to-refresh instead of blinking empty, Saved for Later now sorts above Available Offline, and audiobooks you imported from a folder on your iPhone no longer show up twice in the Available Offline shelf.
  • Widgets keep the cover true. On a tinted Home Screen, the Continue Listening widget keeps its cover art in full color instead of being recolored to match the tint.

Version 1.0.6

Discovery gets fresher: a live best-seller feed and a rolling new-releases shelf pinned to the top of the Discover row, plus a Search hero that rotates through a different genre's trending titles every visit.

  • Top Trending Titles. A new Curated List at the head of Discover uses audiobook catalog best-sellers — what people are listening to right now, refreshed every time you pull to refresh. Tap a cover to open the same Discover sheet that finds the book on the audiobook store and queues a download; narrator, series, and description carry over from the catalog.
  • New Releases This Month. A second catalog-backed list pulls audiobooks released in the past 30 days, newest first, with future-dated pre-announcements filtered out so the shelf shows what's actually available now.
  • Audiobook-native detail layout. Audiobook catalog list sheets now lay out covers in a tight three-column grid with square artwork — the same proportions as the Library tab — rather than an ebook-style portrait shape.
  • Trending in <Genre>, rotating. The hero card on the Search tab — previously a static "Fiction" or the user's top genre — now reads "Trending in Romance" / "Trending in Fantasy" / etc., picking a fresh genre from a curated dozen every time you land on the tab. The covers underneath come from a current catalog best-seller slice for that genre.

Version 1.0.5

Bring your own audiobook library — point Spine at a folder on your iPhone, an Audiobookshelf server, or anywhere the Files app reaches, and your existing collection joins the Torbox stream side by side.

  • Local audiobooks, alongside Torbox. Settings → Library Sources → On This iPhone lets you pick any folder. Spine scans for .m4b, .mp3, .flac, and the rest — flat files become single-file books, subfolders with audio become multi-chapter books, and Author/Book/files nesting just works. Bookmarks, progress, and listening time behave exactly like Torbox books.
  • Audiobookshelf as a third library source. Settings → Library Sources → Audiobookshelf takes a server URL, username, and password. Spine pulls every book from every book-typed library on that server, using server covers first and metadata from various providers as a fallback. Streams and downloads use authenticated Range requests so offline caching works with private servers.
  • Bidirectional Audiobookshelf progress sync (15-second cadence). First time Spine sees an ABS book, it pulls the server's current position. After that, Spine pushes back every 15 seconds during playback, plus an extra flush on pause, chapter change, and app background — same cadence the official ABS iOS app uses. Listen on the web, pick up in Spine; listen in Spine, pick up on the web.
  • Bidirectional Audiobookshelf bookmark sync. ABS-side bookmarks land in Spine on the next library refresh and inherit your book's chapter info. Bookmarks you create in Spine push to ABS once the on-device summarizer finishes the label, or immediately if you typed a note. Spine still owns the rich fields (voice notes, transcripts, AI insights) — only (time, title) mirrors to the server.
  • Available Offline section. A new collapsible section above Library shows every book you can play without a network — downloads on the phone, plus everything from your "On This iPhone" local source. Books currently in Now Listening don't duplicate; offline copies you haven't started are pulled out of Library so the shelf stays focused.
  • Saved for Later. Long-press any cover or row to save it for later. The book moves out of Library into a new "Saved for Later" section, collapsed by default. Pressing play on a saved title automatically clears the flag — start listening and it stops being "later." Syncs across devices through your iCloud account.
  • Library is collapsible. The main Library section now collapses with the same chevron used by Metadata Gaps and Finished Reading, and every section shows an item count next to its title.
  • Chapter view lands where you are. Opening the chapters sheet during playback now scrolls straight to the current chapter instead of starting at chapter 1.
  • The time readout, redesigned. The number on the right of the scrubber now toggles between chapter remaining, book remaining, book percent, and finishing clock-time. Tap to cycle; long-press for a picker with a speed-adjust toggle so a six-hour count at 1.5× shows four hours of wall-clock. New books pick the most useful default automatically — chapter remaining when chapters are present, book remaining otherwise — then lock in your choice after the first tap. The mini-player mirrors the full player; Lock Screen, CarPlay, and Dynamic Island inherit the same value without their own controls. Preference syncs per book across devices.
  • Search auto-focuses. Tapping into Search now pops the keyboard immediately, so the first thing you can do is type.
  • Accessibility, deeper. A pass across the player, library, charts, and widgets tightened VoiceOver labels and grew hit targets. The time readout speaks a real duration ("two hours, fourteen minutes remaining") instead of raw digits, and player controls get explicit hints for what each tap will do.
  • Audiobookshelf covers, everywhere. ABS cover art now feeds the ambient detail-page backdrop, the Lock Screen Live Activity, and the Continue Listening widget — same surfaces Torbox and local books already lit up.
  • Settings, calmer. Library Sources rows no longer wear a chevron when there's nothing to drill into. Folder-pick failures (permission denied, folder moved) surface inline with a fix-it action instead of failing quietly.
  • iCloud Drive supported via the system file picker. Pick an iCloud Drive folder once and Spine resolves it through a security-scoped bookmark on every relaunch. Other document-provider folders (Dropbox, OneDrive) work too if they expose folders to the Files app.
  • Stable identity across renames. Books keep their bookmarks and progress even if you rename a file in Files. A new sidecar index matches by size and filename similarity (Sørensen–Dice ≥ 0.7), so reorganizing your collection doesn't strand listener data.
  • A source badge on every tile. When more than one library source is active, each tile picks up a small badge in the corner so you can tell at a glance which book lives where. A filter chip strip above the library lets you narrow to one source.
  • "Unavailable" instead of vanished. If a local file goes missing between scans, the book stays in your library with a greyed cover and an "Unavailable" pill, so progress and bookmarks survive. Re-add the file and it lights back up automatically.
  • Settings, tidier. Storage moved below Version in About Spine so the most-glanced field is on top.
  • Torbox behavior unchanged. Existing book IDs are preserved; bookmarks, progress, listening log, and Hardcover series tracking all keep working. Downloads have moved from Documents/Downloads/<id>/ to Documents/Downloads/torbox/<id>/ behind the scenes — the migration runs once on first launch.
  • Weekly Companion retired. The on-device weekly digest card from 1.0.3 has been removed from Discover. The other Apple Intelligence features — bookmark distillation, "previously on…", description rewrites, Recap captions, voice-note titles, listener taglines, and title cleanup — are all unchanged.

Version 1.0.4

Smarter metadata lookup that won't hand you the wrong book, AirPods that finally skip the way you'd expect, and playback that still works after you've pulled the API key.

  • Metadata that won't lie to you. Edit Metadata checks various metadata providers and runs every candidate through a title/author overlap check before accepting it. No more "Home World" appearing when you searched "Hell World"; if no provider has a confident match, Spine says so instead of guessing. Filenames in the Title - Author shape are now parsed too.
  • AirPods skip like the lock screen does. Double-tap and triple-tap on AirPods now perform the same 30-second forward / 15-second back skips as the lock-screen buttons, instead of jumping chapters.
  • Local playback survives a missing key. Deleting your API key used to block playback even for chapters that were fully downloaded to the device. Downloaded audio now plays without a key — only streaming requires one.
  • Settings, calmer. The Apple Intelligence section is one row showing availability; tap it to open a sheet with the toggles grouped by purpose (reading & activity vs. bookmarks) and a single privacy footer.
  • Share any bookmark, or all of them. Every bookmark row's context menu now has Share built in, and the Bookmarks Hub's by-book grouping picks up a "Share all" button that stitches every bookmark from a book into one clean message.
  • A tidier mini-player. The bottom mini-player capsule now collapses entirely when nothing is loaded (iOS 26.1), instead of sitting empty above the tab bar.

Version 1.0.3

In this release, Bookmarks distill themselves, a weekly companion summarizes how the week went, the listener level card greets you with a line written for your stats, and voice notes auto-title themselves into a clean table of contents — all on-device.

  • One-tap insight bookmarks. Tap the bookmark button — anywhere — and Spine grabs the last 45 seconds of what you're listening to, transcribes it with Apple's on-device speech model, and asks Apple Intelligence to extract a verbatim quote, a one-sentence summary, and three to five topical tags. No sheets, no decisions, no typing. The bookmark is saved instantly so nothing is ever lost; the quote and summary fill in a few seconds later.
  • Capture from anywhere. Siri, the Action Button, Shortcuts, and CarPlay all route through the player's bookmark button, so "Hey Siri, bookmark this" works hands-free.
  • The Bookmarks Hub. A new card on the Activity tab opens a hub sheet with every bookmark across every book. Search across quotes, summaries, notes, and tags. Filter by tag with a chip strip. Group by recency, book, or tag. Swipe or long-press to share or delete a single bookmark, or share every bookmark from a book in one tap.
  • The Weekly Companion. A new card at the top of Discover summarizes the week — hours, busiest day, books finished, time saved at higher speeds — and writes a short, warm note about it. Refreshes every Monday; toggleable in Settings.
  • A listener level that talks back. The level card, the milestone banner, and the tier detail sheet now wear a personalized one-line tagline tied to your tier and hours bucket. "Sapling, settling into the habit" reads different when you cross into "Marathoner, four hundred hours deep." Cached per tier × hours, so the line stays stable until the next bucket.
  • Privacy unchanged. Every new AI feature — quote extraction, summaries, tags, weekly digest, listener tagline, voice-note titles — runs entirely on Apple Intelligence. No transcript, audio, or stats ever leave the phone. Each feature is individually toggleable in Settings.

Version 1.0.2

A clearer download indicator, a finer speed dial, and a delete button that actually deletes.

  • Tap a cover to cancel a download. Downloading books now show a large, App Store-style progress ring on the cover. Tap it to stop the download — no more digging through the context menu, and you can see exactly how far along each book is at a glance.
  • Playback speed, your way. The speed pill on the player opens a full slider from 0.5× to 3× in 0.1 increments, with quick chips for 0.75×, 1×, 1.25×, 1.5×, and 2×. Dial in the exact pace you want for any narrator.
  • "Remove from Library" sticks the first time. Deleting a book used to occasionally make it reappear because the library was serving cached data for a few seconds after the deletion. Spine now asks for a fresh read after every delete (and on pull-to-refresh), so the tile goes away and stays away.

Version 1.0.1

We found the nasty little bugses, yes we did. Squashed them, fixed them, made the app smoother and shinier for you, precious.

Fewer glitches. Better performance. Happier tapping.

Update now, my precious.

Version 1.0.0

Spine is the audiobook app you'll actually leave open.

It streams from your own cloud library, syncs with Hardcover, and turns the habit of listening into something worth coming back to — listener levels, daily streaks, and a year-in-review Recap bright enough to share. Built native for iOS 26, with Liquid Glass, serif typography, and a player carved into the book's detail page.

No subscription. No ads. No in-app purchases. No account to create with us. Bring your own library, keep your own data.

What makes it different

  • One page for the book — No separate Now Playing screen. Cover, scrubber, transport, speed, sleep timer, chapters, and bookmarks all live inline on the detail page, on an ambient backdrop tinted by the cover.
  • Chapters that just work — Single-file M4B audiobooks expose their chapters automatically. Cloud folders with multiple M4Bs split into separate library entries. No manual editing, no reprocessing.
  • Hardcover sync — Just listen. Spine logs progress and finished books to Hardcover and keeps your shelves in sync. Library details are enriched separately using metadata from various providers.
  • On-device intelligence — Open the next book in a tracked series and Spine writes a two-sentence "previously on…" recap from what you've already finished. It also rewrites bloated marketing descriptions into a calm summary, captions your Recap, and cleans up filename-salad titles. All on Apple's on-device foundation model. Nothing about your library leaves the phone.
  • Levels, streaks, and goals — Lifetime hours unlock six tiers, from Sapling to Oracle. A unified daily/yearly goal card, a streak chip, and a year-spanning heatmap show the shape of your habit at a glance.
  • A Recap you'll want to share — Five bright screens covering hours, finished books, top author and genre, monthly rhythm, and the books you marked Read on Hardcover. One tap stitches the whole thing into a postable image.
  • Playback that pays attention — Step away for a moment and Spine rewinds a few seconds when you press play. The sleep timer fades audio gently to zero. Finish a series entry and the next book surfaces automatically.
  • Playback beyond the app — Lock Screen Now Playing, the home-screen widget, Control Center, CarPlay, and the Apple Watch companion keep playback controls close without navigating back into the app.
  • Bookmarks with context — Tap to mark any moment and jump back later. On supported devices, Spine can transcribe the preceding audio on-device and add a verbatim quote, summary, and topical tags.
  • Search that points somewhere — Open the search tab cold and you get a trending-genre card tuned to what you actually listen to, a Discover list, and trending shortcuts. Most people aren't searching their own shelf — they're looking for the next thing.
  • Every book is a doorway — Detail pages carry "More by author" and "Top in genre", right under your bookmarks.
  • Spotlight-indexed — Search your library from anywhere in iOS.

Privacy by default

Spine has no user account system, advertising SDKs, or third-party analytics SDKs. Your library, listening history, and bookmarks stay on your device or sync through your own iCloud account. Apple Intelligence features run on-device. Spine does sync a limited first-party feature-usage snapshot to CloudKit, as described in the privacy policy.

Requirements

  • iPhone running iOS 26.
  • A supported audiobook source: Torbox, a local folder, Audiobookshelf, Grimmory, or BookOrbit.
  • A Hardcover account is optional for Discover and reading-progress sync.
  • Apple Intelligence-eligible device is required for the optional AI features (everything else works without it).

Listen the way you read.