DeepSeek Harness Remote
DeepSeek Harness Remote 可將手機或另一台電腦與你運行 DeepSeek Harness 的電腦安全連接,隨時隨地繼續你的工作,方便隨時查看進度並繼續工作。
AI 翻譯
尚未收集儲存庫資訊。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗A local-first workspace for notes, wiki pages and databases. Everything is stored on your computer in one JSON file. No account, no server, no telemetry, works offline.
Blockpad is an independent app inspired by block-based workspaces. It was built clean-room from public documentation and does not contain any other product's code, logos, icons or content.
One code base, five kinds of device. What was actually tested:
| Platform | What you get | Tested how |
|---|---|---|
| Windows 10/11 | Everything: editor, databases, offline AI, peer-to-peer sharing. One-click installer (installer/Blockpad-Setup.exe) or build/v1.8.6/Blockpad-win32-x64/Blockpad.exe | Full suite on the packaged app and on the installed copy |
| Linux x86-64 | Everything | Full suite incl. 3 real processes sharing, on Ubuntu 24.04 (WSL2, virtual display) |
| macOS Apple silicon + Intel | Everything | Built; structure verified (right CPU architecture for the app, the AI engine and the native modules; blockpad:// links registered). Not run on a Mac. The GitHub Actions workflow runs the tests on real Mac machines |
| Android 7+ | Editor and databases, offline, touch-friendly (no AI, no sharing yet) | Real APK on an Android 16 emulator (Pixel 6): real touches and keyboard, restart, airplane mode, rotation |
| iPhone / iPad / any browser | The same web app, installable (Add to Home Screen), works offline (no AI, no sharing yet) | Chromium and WebKit (Safari's engine) with an iPhone profile. A native iOS shell for xtool is in ios-xtool/ (not compiled: needs your Apple ID and Xcode) |
Build commands: npm run package (Windows), npm run package:linux, npm run package:mac-arm64, npm run package:mac-x64 (run the Linux/macOS ones on Linux, macOS or WSL), npm run web (browser/phone app into site/app), npm run android then build in android/ with Gradle. .github/workflows/build.yml builds and tests all of them on GitHub and attaches the downloads to a release when you push a tag like v1.8.6.
The phone/web build keeps your workspace in the browser's IndexedDB on that device (nothing is uploaded) and works with no network. Built-in AI and peer-to-peer sharing need the desktop apps for now: they rely on a native AI engine and on UDP networking that browsers and phone web views do not provide. A browser-compatible sharing transport (WebRTC) is the planned way to add it.
Back and the drawer on a phone: the Back key (or gesture) first closes whatever is open over the page (a dialog, a menu, the slides, the links or comments sheet, the side drawer), then goes to the page you came from, and only on the first page with nothing open does it ask for a second press ("Press back again to exit") before leaving the app. The Android app asks the page first (BP.handleBack(), called from MainActivity); browsers and a mouse's back button get the same answers through a guard entry in the history. Every button in the side drawer closes it after you use it, and swiping the drawer left closes it. On touch screens, controls that otherwise show only under the mouse (cover buttons, replace image, table row / column tools, database row buttons) are always visible. tools/smoke38.js tests all of this; the Android Back key itself was checked on an emulator.
build/v1.8.6/Blockpad-win32-x64/Blockpad.exe (a shortcut named Blockpad is on the Desktop), or install with installer/Blockpad-Setup.exe.npm install then npm start.npm run icons (all sizes, .ico, .icns, Android launcher icons).%APPDATA%\blockpad\data\workspace.json (Settings > Data & backup shows the exact path and has a Show in folder button). A copy of the previous session is kept as workspace.bak.json. If the file ever cannot be read, Blockpad refuses to overwrite it and tells you.
Pages and blocks
/ menu for every block, @ to mention a page, markdown shortcuts (#, -, 1., [], >, ", ```, ---), selection toolbar (bold, italic, underline, strike, code, link, text and background colors), Tab / Shift+Tab nesting, drag handle with Turn into / Color / Duplicate / Move / Delete, undo and redo, block multi-select (Esc, Shift+arrows, drag a box; copy / cut / paste / duplicate / delete; drag blocks onto a sidebar page to move them), inline comments (select text → 💬, threaded replies, resolve), and smart paste (below).Databases
prop("Hours") * prop("Rate"), if, ifs, concat, round, dateAdd, dateBetween and more.Linked notes
[[ (or @) to link a page, or to create the page you are linking to. The Links panel (top bar, with a count) shows the page's outline, every page that links here with the sentence around the link, unlinked mentions (pages that name this one without linking it, with a one-click Link), outgoing links, tags and a word count. Hover a link to preview the page. Renaming a page updates link text that still shows the old name.# to pick or make a tag (#work/client nests under #work), or give a page a Tags property. Tags in the sidebar lists them with counts; search #tag finds tagged pages./canvas): an endless board of text cards (Markdown), page cards, link cards and groups joined by labelled arrows; colours, resize, pan and pinch-zoom. Stored in the open JSON Canvas format.[[links]] with aliases and headings, frontmatter, tags, embedded images / PDFs / audio / video, callouts, tables, tasks, nested lists, code, math, highlights and .canvas files come across; the vault is only read. Export the workspace or one page as a vault: Markdown with frontmatter and [[links]], attachments/, databases as a .base view with a note per row, canvases as .canvas (a folder on desktop, a .zip in the browser and on phones)./diagram (or a code block set to ) draws flowcharts, sequence, class, state, ER, Gantt, pie, mind-map and timeline diagrams from a few lines of text. The code shows under ; a mistake in it shows a message instead of breaking the page. The drawing library (MIT, 3.5 MB) is loaded the first time a page has a diagram, and cached for offline use after that.Everything else
Press Share on a page. Blockpad makes two blockpad:// links: Can edit and View only. Send them to people you trust. They open only in the Blockpad app (a link does nothing in a browser), and Share → Send Blockpad to a friend (zip) saves a copy of the app for anyone who does not have it yet.
tools/run-share-test.ps1 runs 3 real Blockpad processes (owner, editor, late-joining viewer) on a private local peer network; -Scripts smoke23,smoke24 runs the simultaneous-edit / cursor / offline scenarios.npm run package builds the app, then npm run installer makes installer/Blockpad-Setup.exe (one-click, per-user, no admin rights; adds Start menu and Desktop shortcuts and registers blockpad:// links; uninstalling keeps your data). It is not code-signed, so Windows SmartScreen shows "More info → Run anyway".site/ is a static website for Vercel: a download page and a /join page. In Settings → Sharing → Your Blockpad website enter its address and Share creates normal https://…/join#d=… links that WhatsApp and Telegram make clickable. The page opens Blockpad if it is installed, or walks the person through installing it. The invite sits after the #, so it is never sent to the website. Setup steps are in site/README.md; the installer (131 MB) is too big for Vercel and should be hosted as a GitHub Release.mcp/blockpad-mcp.js (no dependencies, runs with the app's own executable, so Node need not be installed); Settings gives a copy-ready snippet for each agent (no key to paste: while agents are allowed in, Blockpad publishes its port and key to the server in a small file in its data folder), and in Claude Code @blockpad lets you attach a specific page. The Shared Brain is a set of ordinary pages (CURRENT, Memories, Handoffs, Decisions, Reports): an agent starts a session with brain_context, saves lasting facts with brain_remember, searches with brain_recall, and ends with brain_handoff, so the next agent (or you) continues where it stopped. Agents are credited on what they write, every change is listed under "What agents did", a switch makes agents read-only, and replacing a page's text keeps the old text in Page history. See mcp/README.md; tools/smoke39.js runs the server end to end (95 checks, also against the packaged app)./Ask AI, continue writing.Paste from ChatGPT, a web page or a terminal and Blockpad rebuilds the structure: code vs text, language labels (bash, python...) become highlighted code blocks, flattened tables become real tables, headings, bullets and inline code are restored, and a long document's first line becomes the page title. Copying blocks inside Blockpad and pasting keeps them exact.
These need servers or a company behind them, which a local-first app deliberately does not have: accounts, per-person permissions and removing one person from a shared page, character-level co-editing inside one block, sharing over a LAN with no internet at all (peers are found through the public peer network), cloud integrations (Slack, Google Drive...), a hosted public API, mobile apps, and speech-to-text transcription and large-model quality (the built-in AI is deliberately tiny: fine for rewriting, summaries and short drafts, weak at reasoning and facts; pick the 1.5B model or bring your own for more). Smaller gaps: the HTML block cannot run scripts (on purpose), the map needs internet for its background tiles, formulas are Blockpad's own language.
Ctrl+K / Ctrl+O search, Ctrl+P command palette, Ctrl+G graph view, Ctrl+Shift+D today's daily note, [[ link a page, # tag, Ctrl+N new page, Ctrl+\ sidebar, Ctrl+, settings, Alt+Left/Right history, Ctrl+Z / Ctrl+Y undo / redo, Ctrl+B/I/U/E/K formatting, Ctrl+Shift+S strikethrough, Ctrl+Enter toggles a to-do or toggle, F12 developer tools.
main.js, preload.js Electron shell, file persistence, dialogs
app/store.js workspace state, pages, databases data logic, seed content
app/editor.js block editor
app/db.js database views
app/app.js sidebar, topbar, dialogs, shortcuts
app/export.js markdown / html / backup import-export
app/knowledge.js link and tag index, backlinks, properties, link previews, daily notes, command palette
app/graph.js graph view
app/canvas.js canvas pages (JSON Canvas)
app/vault.js Markdown vault import / export, .zip read and write
app/diagrams.js diagrams from text (vendor/mermaid.min.js, loaded on first use)
app/clipper.js web clipper
app/slides.js present a page as slides
app/vim.js Vim keys
app/brain.js the Shared Brain for AI agents (desktop)
app/api.js local REST API (pages, databases, search, brain)
mcp/blockpad-mcp.js MCP server for AI agents (desktop); see mcp/README.md
assets/ logo.svg, icon.png, icon.ico
tools/ icon generator and smoke tests (npm start with --smoke=tools/smokeN.js)
replica/ recon map and feature matrix from the replica-recon step
version in package.json (and versionName/versionCode in android/app/build.gradle).node tools/make-site-config.js --windows URL --linux URL --android URL --notes "what is new|another point" (macOS links you do not pass keep their old value).site/version.json. Every installed app older than that version shows "Update available" at its next launch (Windows, Linux, macOS, Android, iOS; the web app updates itself).mermaid#clipped. The desktop and phone apps fetch the page themselves; a browser can only read sites that allow it, so there it offers a page to paste into.---), or at top headings when there are none, after a title slide. → / Space / click for next, ← for back, F for full screen, Esc to stop, swipe on a phone. A Slide deck template shows the idea.h j k l, w b e, 0 ^ $, gg G, x, dd, D, cc, yy, p P, o O, i a I A, u, Ctrl+R, counts like 3j, / search and : for the command palette. A label at the bottom shows the mode.