DeepSeek Harness Remote
DeepSeek Harness Remote 可将手机或另一台电脑与你运行 DeepSeek Harness 的电脑安全连接,随时随地继续你的工作,方便随时查看进度并继续工作。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Slightly more stuff than notepad, but less than Word
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗A fast, private word processor and PDF editor that runs entirely in your browser. No account, no server, no tracking. Your documents stay on your device. It saves as you type, works offline, opens and saves Word documents, and lets you edit and sign PDFs.
Writing
# heading, - bullet, 1. numbers, [ ] checklist, > quote, ``` code, --- lineDocuments
.docx, .md, .html and .txt, by menu or by dropping files on the window (PDFs and images open in the PDF editor, below).docx), web page, Markdown or plain text. Export… makes a PDF (through Print). Everything is also kept in Noteshack as you work ("Saved in Noteshack").
PDFs
What PDF editing cannot do, so nothing surprises you:
Tools
Documents are stored in your browser's IndexedDB on this device. They are never uploaded. Clearing your browser's site data deletes them, and they don't follow you to other browsers or computers. Use File → Back up all documents to keep a copy, or to move them.
Upgrading from the first version? Your old draft is moved into the documents list automatically the first time you open the new version.
There is no account, no ads and no cookies, and documents are never uploaded. Three things are fetched from the internet, and two are sent only when you ask:
Uncommon font files. The 31 common fonts the app matches are served
by Noteshack itself. When a PDF names a font outside them, that font file
is downloaded from the free Fontsource library
through jsDelivr (cdn.jsdelivr.net). Like any website, jsDelivr sees the
visitor's IP address; nothing from the document is sent.
Linked pictures. A picture in a document that links to a web address (for example, pasted from a web page) is loaded from that address.
Translation models and script fonts, from Noteshack's own file
storage (files.noteshack.org), kept in the browser after the first time:
the model for two languages, the first time you translate between them,
and the font for a script (Arabic, Chinese, Hindi and others), the first
time a PDF needs it. Only the file is downloaded; the text is translated,
and fonts are cut down to the letters used, on the device.
The online translator, only when you choose it (Translate → Online):
the text being translated is sent to Noteshack's translation service on
Cloudflare (api.noteshack.org), which translates it with Workers AI and
sends it back. Nothing is kept or logged.
A problem report, when you send one (Tools → Report a problem): what you write, the app's version, your browser and the app's language go through the same service to Noteshack's GitHub page, where the report is public. Nothing from your documents is sent.
Everything else, text recognition included, runs on the device.
Noteshack is provided as is, without warranty of any kind. Text recognition and font matching can be wrong: check a PDF before sending, submitting or signing it, and keep backups of anything important.
Users are responsible for the documents they change. Do not alter a document in a way that misleads anyone, such as a form or record someone else filled in or signed.
Noteshack's own code is released under the MIT License.
The libraries in vendor/ keep their own licenses, listed below.
Noteshack uses these open-source projects, kept unmodified in vendor/
with their license texts:
vendor/dictionaries)files.noteshack.org, not stored in this repository; tools/translation-models.py puts them there)worker/)Fonts come from Fontsource when needed and are not stored in this repository; each is under its own free license (SIL Open Font License or Apache License 2.0). Fonts made from a scan's letters are changed copies of those fonts, so they are renamed (Noteshack Scan 1, 2…) and keep their license notices, as the Open Font License asks.
Adobe, Acrobat and ClearScan are trademarks of Adobe. Microsoft, Word and Calibri are trademarks of Microsoft. Arial and Times New Roman are trademarks of The Monotype Corporation. They are named only to describe compatibility; Noteshack is not affiliated with or endorsed by them.
It is a static site with no build step and no dependencies.
python3 -m http.server, and open http://localhost:8000. (Opened
straight from disk, the word processor works but PDFs do not: browsers
will not load PDF.js's modules from a file:// page.)main, root folder.
The live site is https://noteshack.org, set by the CNAME file and the
domain's DNS records (four A records and four AAAA records for GitHub Pages,
and a www CNAME to bobothehutt.github.io).Each web address keeps its own saved documents, so after moving the site to a new address, open the old one, use File → Back up all documents, and restore that file at the new address.
The app needs nothing installed; the tests need Node.js.
npm install
npx playwright install chromium firefox webkit
npm test
They serve the repository as the site and use it in Chrome, Firefox and Safari's engine (WebKit): writing,
exporting, editing and downloading PDFs, filling forms, reading scans,
storage, printing, accessibility (axe), privacy (which sites are contacted),
small screens and offline use. The PDFs they open are made fresh each run
from invented text, so no real document is in the repository. Only the ones a
change affects are run; GitHub runs those in all three when started by hand
(.github/workflows/test.yml).
The code is written in English, with each phrase the app shows wrapped:
_('Saved to “{name}”', { name }), or for a number,
_n(count, '{n} page', '{n} pages'). Each language's file in locales/ gives
the same phrase translated, keyed by the English (a plural under the English
plural, one form per plural category of the language). The text in
index.html is translated where it stands when the app starts.
A new or changed phrase needs a translation in every file in locales/: the
tests list any that is missing, any no longer used, and any whose {…}
parts differ from the English. node tools/phrases.mjs lists the phrases the
code uses. Two test languages, from the address only, help find what was
missed: ?lang=en-XA shows every phrase accented and longer (so text left in
plain English, or cut off, stands out), and ?lang=ar-XB does the same right
to left.
index.html page structure, menus and toolbar
js/boot.js sets the theme before the page first draws
styles.css all styling: light and dark themes, phone layout, print
js/app.js the editor and the rest of the app
js/store.js document storage (IndexedDB)
js/sanitize.js cleans pasted and opened content
js/markdown.js Markdown import and export
js/docx.js Word .docx import and export
js/zip.js the zip reading and writing .docx needs
js/pdf.js the PDF editor
js/fonts.js identifies and downloads the font a PDF was set in
js/scanfont.js builds a font from a scan's own letters
js/images.js opens images in the PDF editor and saves them back as images
js/i18n.js the app's own language: phrases, plurals, the test languages
locales/ the app's phrases in Spanish, French, German, Portuguese and Italian
js/lang.js the languages, and working out which one a text is in
js/spell.js spell checking (js/spellworker.js runs Hunspell)
js/translate.js translation on the device: Noteshack's engine (Bergamot) or the browser's
js/remote.js downloads from files.noteshack.org: checked, and kept in the browser
js/shaping.js text in other scripts in saved PDFs: Noto fonts, shaped (HarfBuzz), cut down to the letters used
worker/ Noteshack's online service (api.noteshack.org), a Cloudflare Worker: the online translator, and problem
reports filed on GitHub; GitHub deploys it when it changes (tools/worker.py)
vendor/ the libraries (see vendor/README.md), with their licenses; loaded only when needed
tools/ the upload scripts for the translation models and the Noto fonts, the online translator's deploy script,
test-setup.py (the tests' fonts and models, where the network cannot reach them); phrases.mjs lists the phrases the code uses
js/icons.js toolbar icons
sw.js offline support
manifest.webmanifest app install details
AUDIT.md audits: the first version, and the app as released
LICENSE the MIT License, for this project's own code
CLAUDE.md notes for an AI assistant working on the code: releasing, secrets, open work
tests/ the tests (see Tests above)
After changing any file, bump CACHE in sw.js so installed copies pick up
the update, and the ?v= number on each of the app's files in index.html to
match it (Cloudflare and browsers keep the code files for hours; a new number
is a new address, so nobody gets new pages with old code; the tests check
the two agree). After changing a file under vendor/, bump VENDOR there too: those
files are cached apart and are not fetched again otherwise.
files.noteshack.org, not stored in this repository; tools/noto-fonts.py puts them there)