GitPedia

Anytype ts

Official Anytype client for MacOS, Linux, and Windows

From anyproto·Updated June 25, 2026·View on GitHub·

> **Local‑first, peer‑to‑peer & end‑to‑end‑encrypted knowledge OS for macOS, Windows & Linux.** The project is written primarily in TypeScript, distributed under the Other license, first published in 2023. It has gained significant community traction with 8,288 stars and 537 forks on GitHub. Key topics include: anytype, e2ee, local-first, offline-first, p2p.

Latest release: v0.55.16-alpha
June 23, 2026View Changelog →

Anytype Desktop

Local‑first, peer‑to‑peer & end‑to‑end‑encrypted knowledge OS for macOS, Windows & Linux.

Latest release
Build Status
Crowdin
License

Anytype is a personal knowledge base—your digital brain—that lets you gather, connect and remix all kinds of information. Create pages, tasks, wikis, journals—even entire apps—and define your own data model while your data stays offline‑first, private and encrypted across devices.

✨ Key Features

  • Offline‑first, local storage with optional peer‑to‑peer sync.
  • Zero‑knowledge encryption powered by any‑sync.
  • Composable blocks: text, databases, kanban, calendar & custom Types.
  • Cross‑platform desktop client built with Electron + TypeScript.
  • Extensible through a gRPC API and AI "Agents" (see AGENTS.md).
  • Open code under the Any Source Available License 1.0.

📚 Table of Contents

🚀 Quick Start

Just want to try it? Grab the latest installer from the releases page or head to download.anytype.io and log in with your Any‑ID.

🏗 Building from Source

On ARM systems, node package keytar needs to be rebuilt during installation, so make sure that your system has a C++ compiler, Python3 and Python package setuptools. E.g. on Debian/Ubuntu: sudo apt install python3-setuptools. Alternatively, on any system, create a Python virtual environment (venv) and inside the venv: pip install setuptools. Then build from source inside the venv.

bash
# 1 – Clone & open this repository git clone https://github.com/anyproto/anytype-ts.git && cd anytype-ts # 2 - Install JavaScript dependencies bun install # 3 – Fetch / build middleware & protobuf bindings ./update.sh <macos-latest|ubuntu-latest|windows-latest> <arm|amd> # 4 – Build the core engine cd .. && git clone https://github.com/anyproto/anytype-heart.git && cd anytype-heart make install-dev-js CLIENT_DESKTOP_PATH=../anytype-ts && cd ../anytype-ts # 5 - Update locale bun run update:locale # 6 – Build the Electron desktop app (see package.json for more options) bun run dist:<linux|win|mac>

Environment flags

VariableEffect
ELECTRON_SKIP_NOTARIZESkip macOS / Windows signing & notarizing
ELECTRON_SKIP_SENTRYDon’t upload sourcemaps to Sentry

🧑‍💻 Development Workflow

You can use nix to install all the required dependencies at once.

shell
# open a shell with all the required dependencies nix develop --command $SHELL

Start the dev server with hot‑reload (builds Electron bundle, starts Vite, then launches Electron):

bash
bun run start:dev # Windows: bun run start:dev-win # add --user-data-dir=./my_dir to electron(-win) script in package.json if you want to use custom user data directory

When you close Electron, the Vite dev server is automatically stopped.

For browser-based development without Electron:

bash
bun run start:web

See Web Mode for details.

Useful commands

bash
bun run build # Production build (Vite) bun run build:dev # Development build (Vite) bun run typecheck # TypeScript type checking bun run lint # Run linters (Biome + ESLint)

Environment variables

NamePurpose
SERVER_PORTVite dev server port (default: 8080)
ANYPROFExpose Go pprof on localhost:<port>

Web Clipper Extension

Build and switch manifest for different browsers:

bash
bun run build:ext bun run ext:manifest:firefox bun run ext:manifest:chromium

Updating Middleware

The middleware version is pinned in middleware.version. To fetch a pre-built middleware binary and its protobuf/JSON assets:

bash
./update.sh <macos-latest|ubuntu-latest|windows-latest> <arm|amd>

This downloads the anytype-heart release matching the version in middleware.version, extracts the anytypeHelper binary into dist/, and copies protobuf definitions and generated JSON into dist/lib/.

For CI environments (requires GitHub credentials):

bash
./update-ci.sh --user=<GITHUB_USER> --token=<GITHUB_TOKEN> --os=<OS> --arch=<ARCH> --middleware-version=<VERSION>

Updating Protobuf Bindings

To regenerate TypeScript protobuf bindings from a local anytype-heart checkout (expected at ../anytype-heart):

bash
bun run generate:protos

Prerequisites: protoc (protobuf compiler) must be installed, and bun install must have been run (for ts-proto).

This reads .proto files from ../anytype-heart, generates TypeScript bindings into middleware/, and creates a service registry.

🌍 Localisation

Translations live on Crowdin. Pull the latest locale files with:

bash
bun run update:locale

🤝 Contributing

We ♥ contributors! Please read our Contributing Guide and follow the Code of Conduct.

Security issues? Don’t open public issues—email security@anytype.io and see our Security Guide.

💬 Community & Support

📝 License

Made by Any — a Swiss association 🇨🇭

Licensed under the Any Source Available License 1.0.

Contributors

Showing top 12 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from anyproto/anytype-ts via the GitHub API.Last fetched: 6/25/2026