mesalogo bf9850a6a9 perf(activity): keep only loaded activity pages in the renderer, driven by Main's summary
The renderer no longer holds the whole history. Startup sends queued
changes, lets Main reconcile leftover pending/running records against the
stored tasks (same localized interruptedOnRestart line), then loads the
first page (200). The Activity page loads a full visible batch (500, as
before paging); "load more" shows the next batch and loads the next page
behind it; a filter switch refetches that filter's first page; leaving the
page trims to one batch. Counts, project/conversation groups, titles,
conversation status and the clear count come from activityHistory.summary
(refreshed on entry, by the page timer, the refresh button and after load
more / filter changes).

Records that are not loaded are still updated incrementally: the update
contract gains content-matched changes (upsert-call, update-request,
resolve-approval, settle-request, remove-request, remove-call) that Main
applies in SQL to shown rows; the store applies the same semantics to its
pages through the shared reference. update returns Main's stored call
records so a call whose earlier record was not loaded keeps one id. Task
refresh reconciles via Main SQL. Legacy localStorage records migrate as
incremental changes; the renderer no longer calls replace.

Tests: randomized sequences of every action, page loads, trims, flushes and
injected failures against the former full-list code on a real database;
first page <= 200 after startup; flush payload depends only on changed
records (including unloaded ones); ActivityPanel output with pages + summary
equals the full-list rendering for randomized datasets with duplicates;
restart interrupts leftover records with the same detail; clear empties the
database, pages and summary; SQL change semantics equal the reference.
2026-10-04 00:03:33 +08:00
2026-08-13 16:39:24 +08:00
2026-09-22 09:50:42 +08:00
2026-09-22 09:51:43 +08:00

GoodBuddy

GoodBuddy

Desktop access to model chat, coding agents, knowledge, and scheduled work

English | 简体中文

Website · Download · Feature Matrix · Build Guide

Release License: 0BSD Windows macOS Linux

GoodBuddy workspace

GoodBuddy is a desktop application for model chat, coding agents, knowledge retrieval, notes, and scheduled tasks. No GoodBuddy account is required. Workspace data is stored locally by default. Model endpoints can run on the same device, on a private network, or at a provider selected by the user.

Highlights

  • Local-first workspace: No GoodBuddy account is required. Workspace data stays local by default, and users choose where model services run.
  • Unified Agent Runtimes: Use direct models, OpenCode, Continue, and the preview DeepSeek Harness from one desktop interface.
  • Explicit execution boundaries: Ask remains read-only, while Execute uses the current account's permissions. Tool activity, cancellation, timeouts, and token usage are recorded.
  • Broad platform coverage: Official Linux releases cover x64 and arm64, including compatible distributions used in China's domestic computing ecosystem. A separate experimental loong64 preview is available for LoongArch systems.
  • Knowledge and long-running work: Knowledge bases, graphs, Magic Notes, tasks, and Smart Heartbeat share one desktop workspace.

Platform coverage describes operating-system, instruction-set, and package compatibility, not certification for every hardware vendor or distribution release. LoongArch is outside the official release matrix; see the LoongArch preview notes for its current limitations.

Capabilities

Area Available in GoodBuddy
Agent Runtimes Direct model connections, OpenCode, Continue, and the preview DeepSeek Harness
Data and execution Local SQLite and note-file storage, read-only Ask, full-account Execute, and recorded tool activity
Knowledge File, folder, and web imports with full-text, Chinese phrase, vector, and knowledge graph retrieval
Desktop releases Official Windows, macOS, and Linux builds for x64 and arm64, plus an experimental LoongArch preview
Integrations Local or hosted model endpoints, custom MCP servers, WeChat ClawBot, WeCom, and DingTalk

Product tour

Knowledge bases and graphs

GoodBuddy knowledge workspace

GoodBuddy knowledge graph

Magic Notes and Smart Heartbeat

Magic Notes displays a continuous record stream, with a narrow left index and independent right AI comments. Both panes can collapse; thumbnails scroll to a record while preserving drafts. It supports rich-text entries and paged canvases with flowing text, handwriting, highlights, images and PDF backgrounds. Import PDF text and export annotated pages as a raster PDF. Canvas saves are manual; AI comments use the default model's image-input capability, with an explicit text-only fallback when images are unsupported. See the Magic Notes documentation for behavior and final validation status.

GoodBuddy Magic Notes

GoodBuddy Smart Heartbeat

Agent Runtimes

Runtime Functions Configuration
Direct models Chat, retrieval, image generation, and built-in tools GoodBuddy model connections
OpenCode Coding agents, native commands, tools, and skills GoodBuddy-managed or native OpenCode configuration
Continue Rules, prompt presets, and coding tasks GoodBuddy-managed or native Continue configuration
DeepSeek Harness (preview) A fixed host with optional plugin capabilities GoodBuddy-managed OpenAI-compatible connection

Each run reports cancellation, timeouts, token usage, tool calls, and history. Runtime-specific capabilities and configuration remain separate.

Download

Download a build from GitHub Releases:

Platform Architectures Formats
Windows x64, arm64 NSIS, portable ZIP
macOS x64, arm64 DMG, ZIP
Linux x64, arm64 AppImage, DEB, RPM

The experimental LoongArch loong64 build is distributed through a separate preview channel on the product website.

Desktop installers do not contain remote Agent payloads. Local projects do not need an Agent package; managed SSH users download or import one explicitly in Settings.

Code signing and macOS notarization are not configured yet, so the operating system may display a security warning.

Run from source

Requires Node.js 24 and npm:

git clone https://github.com/mesalogo/goodbuddy.git
cd goodbuddy
npm ci
npm run dev

See BUILD.md for build and packaging instructions.

Documentation

Privacy and execution boundaries

  • Model requests are sent only to services selected by the user.
  • Local data stays in the operating system's application data directory by default. API keys are encrypted by secure system storage.
  • The Renderer has no access to raw Electron APIs or model credentials.
  • The DeepSeek Harness plugin marketplace is off by default. Third-party install scripts, initialization code, and Execute tools run with the current user's permissions.
  • Remote delegation is enabled only after the user configures an endpoint and token.
  • Private-network compatibility permits in-app HTTP and non-standard HTTPS certificates. WeChat credential and media endpoints remain strictly validated.

Contributing

Issues and pull requests are welcome. Read AGENTS.md first, then run:

npm test
npm run typecheck
npm run lint

Community communication

Scan the QR code to join the GoodBuddy WeChat group:

8d6cd5dc3f347a0f3f1cf3844071b4d3

License

Original GoodBuddy code is released under the 0BSD License. You may use, modify, distribute, and commercialize it freely. Third-party components and resources retain their respective licenses.

S
Description
No description provided
Readme 0BSD
31 MiB
Languages
TypeScript 90.7%
JavaScript 5.5%
CSS 2.7%
Python 0.7%
HTML 0.3%