anytype_rs

Crates.ioanytype_rs
lib.rsanytype_rs
version0.0.3
created_at2025-06-23 06:34:26.584879+00
updated_at2025-07-07 00:00:20.697394+00
descriptionA Rust client library and CLI for the Anytype API
homepage
repositoryhttps://github.com/lanesawyer/anytype_rs
max_upload_size
id1722420
size279,200
Lane Sawyer (lanesawyer)

documentation

README

Anytype.rs - Rust API Client and CLI for Interacting with Anytype

A Rust library and CLI tool for interacting with your local Anytype application via its API.

THIS IS CURRENTLY ALL VIBE CODED AND SHOULD NOT BE TRUSTED. It is not comprehensive and I wouldn't run it on any spaces you care about. It will be improved over time, but for now, it is just a starting point. Created with Claud Sonnet 4 (Preview) in GitHub Copilot.

Overview

This project provides a Rust interface to interact with Anytype's local API server, which runs in your Anytype app at http://localhost:31009. It's a single crate that provides both a library for programmatic access and a command-line interface for direct usage.

You can download the crate from crates.io.

Project Structure

This is a single crate with two main modules:

  • src/api/: Core library for interacting with the Anytype API
  • src/cli/: Command-line interface that uses the API module

There is also a tests directory for integration tests that cover both the library and CLI functionality, but they're all vibe coded right now and probably useless.

Features

This project provides bindings to the Anytype API and a CLI tool to interact with it. See the sections below for current state of the API implementation.

The following lists the currently implemented endpoints for the 2025-05-20 API version.

The ✅ means it's been vibe coded. I still need to go through and verify each of the ✅ endpoints, but the basics are there. They might be missing some functionality but the basics worked.

❌ means it has not been implemented yet in any fashion.

Authentication

  • ✅ Create API key
  • ✅ Create challenge

Search

  • ✅ Search objects across all spaces
  • ✅ Search objects within a space

Spaces

  • ✅ List spaces
  • ✅ Create space
  • ✅ Get space
  • ✅ Update space

Lists

  • ✅ Add objects to list
  • ✅ Remove objects from list
  • ✅ Get list views
  • ✅ Get objects in list

Members

  • ✅ List members
  • ✅ Get member

Objects

  • ✅ List objects
  • ✅ Create object
  • ✅ Delete object
  • ✅ Get object
  • ✅ Update object

Properties

  • ✅ List properties
  • ✅ Create property
  • ✅ Delete property
  • ✅ Get property
  • ✅ Update property

Tags

  • ✅ List tags
  • ✅ Create tag
  • ✅ Delete tag
  • ✅ Get tag
  • ✅ Update tag

Types

  • ✅ List types
  • ✅ Create type
  • ✅ Delete type
  • ✅ Get type
  • ✅ Update type

Templates

  • ✅ List templates
  • ✅ Get template

Installation

Prerequisites

  • Rust 1.87.0 or later (may work on earlier versions, but not tested)
  • Anytype application running locally

Build from Source

git clone <repository-url>
cd anytype_rs
cargo build --release

The CLI binary will be available at target/release/anytype.

Install from Cargo

cargo install anytype_rs

This will install the anytype binary to your Cargo bin directory.

Usage

Command-Line Interface

The CLI provides a way to interact with the available Anytype API endpoints directly from the terminal.

Use the --help flag to see the available commands and how to use them.

Library Usage

Install the library from Crates.io by adding anytype_rs to your Cargo.toml.

Local Development

This client is designed to work with your local Anytype application. Make sure:

  1. Anytype is running: The Anytype desktop application must be running on your machine
  2. API Server is active: The local API server should be accessible at http://localhost:31009
  3. Authentication: You'll need to authenticate through the challenge-response flow

Checking Your Local Setup

You can verify your local Anytype API is accessible by running the authentication status command:

# Or use the CLI to check status
anytype auth status

Configuration

The CLI stores configuration in your system's standard config directory:

  • Linux: ~/.config/anytype-cli/
  • macOS: ~/Library/Application Support/anytype-cli/
  • Windows: %APPDATA%\\anytype-cli\\

API keys are stored securely in this directory.

Development

Running Tests

cargo test

Enable Debug Logging

# For the CLI
anytype --debug auth status

# For library development
RUST_LOG=debug cargo run
Commit count: 0

cargo fmt