Native Shell
Native Shell:AI 生成的 UI,在你的應用中原生呈現,涵蓋每個平台。iOS、Android、macOS、Windows 與 Linux 上的應用、GPUI 應用與網頁在執行時載入已簽名、沙箱隔離的 TSX 模組並繪製 th
AI 翻譯
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Read and write Apple Pages, Numbers and Keynote documents in pure TypeScript. Zero runtime dependencies, byte-identical round trips, no Mac required.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Open, edit, and save Apple Pages, Numbers, and Keynote documents—anywhere JavaScript runs. Pure TypeScript, zero runtime dependencies, no Mac required. You work with paragraphs, cells, and slides; the bytes take care of themselves.
Docs: https://den-frie-vilje.github.io/cupertino-files/
npm install cupertino-files
import { readFileSync, writeFileSync } from "node:fs";
import { PagesDocument, NumbersDocument } from "cupertino-files";
const doc = PagesDocument.load(new Uint8Array(readFileSync("report.pages")));
doc.replaceText("2024", "2025");
doc.appendParagraph("Conclusion", "Heading 1");
writeFileSync("report-2025.pages", doc.save());
const sheet = NumbersDocument.load(new Uint8Array(readFileSync("budget.numbers")));
const table = sheet.tables()[0]!;
table.setCell(1, 1, 143_800);
table.setFormula(1, 2, "=B2*1.25", { value: 179_750 });
writeFileSync("budget.numbers", sheet.save());
Everything you don't touch is preserved byte-for-byte (how). Works in Node 22 or later and modern browsers, ESM-only. Bytes in, bytes out.
The format is undocumented; this library is an ongoing
reverse-engineering of it, measured from real documents.
docs/COVERAGE.md is the always-current answer to
"does it do X?". The short version:
=SUM(A1:A5), =Other::B2); 363 functionsNumbersDocument.blank() and friends: a fresh A4 document or 16:9 deck, no template file neededdoc.audit() names the faults a person otherwise finds by opening the document, and save() refuses an archive missing a required fieldDeeper detail, per capability and with the evidence: the capability matrix · what each open question waits on · the format itself.
npx -y cupertino-files dump info file.pages inspects; export file.key prints Markdown (--format csv a table); import notes.md deck.key builds a document; call runs any editing tool from the shellnpx -y cupertino-files mcp: an MCP server whose tools create, edit, format, and export documents, plus a Claude Code skill in the packageMore in For AI agents and the API reference.
npm install && npm test # unit + fixture suite; never launches an app
npm run test:e2e # macOS only: drives the real apps
Contributions are warmly welcome—CONTRIBUTING.md shows the way, and docs/BLOCKERS.md lists questions where a few minutes with a Mac genuinely helps. Test fixtures are real Apple-written documents from open-source test suites and public repositories (attribution).
Built on the shoulders of iWorkFileFormat, keynote-parser, numbers-parser and WorkKit.
An independent project, not affiliated with or endorsed by Apple Inc. Apple, iWork, Pages, Numbers, and Keynote are trademarks of Apple Inc., used only to name the formats this library interoperates with. It contains no Apple code and declines encrypted documents by design; details in docs/LEGAL.md.
MIT © Ole Kristensen