6 releases
Uses new Rust 2024
| 0.3.1 | Feb 27, 2026 |
|---|---|
| 0.3.0 | Feb 27, 2026 |
| 0.2.2 | Feb 27, 2026 |
| 0.1.0 | Feb 27, 2026 |
#1968 in Network programming
37 downloads per month
4.5MB
5K
SLoC
Contains (Mach-o exe, 8.5MB) cmd/typegen/typegen
tslocal
Client libraries for the Tailscale Local API in Rust, Python, and TypeScript.
These are direct ports of the official Go client (tailscale/client/local), targeting Tailscale v1.94.1.
Libraries
| Language | Path | Runtime |
|---|---|---|
| Rust | rust/ |
async/tokio |
| Python | python/ |
sync |
| TypeScript | ts/ |
Node.js |
Installation
Rust — add to Cargo.toml:
[dependencies]
tslocal = "0.3.1"
Python:
pip install tslocal
TypeScript:
npm install tslocal
Usage
All three libraries communicate with the local Tailscale daemon over a Unix domain socket. The daemon must be running on the same machine.
Rust
use tslocal::Client;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = Client::new();
let status = client.status().await?;
println!("Tailscale version: {}", status.version);
Ok(())
}
Python
from tslocal import Client
with Client() as client:
status = client.status()
print(f"Tailscale version: {status.version}")
TypeScript
import { Client } from "tslocal";
const client = new Client();
const status = await client.status();
console.log(`Tailscale version: ${status.Version}`);
client.destroy();
Supported Methods
| Description | Go | Rust | Python | TypeScript |
|---|---|---|---|---|
| Get full node status including peers | Status |
status |
status |
status |
| Get node status without peer information | StatusWithoutPeers |
status_without_peers |
status_without_peers |
statusWithoutPeers |
| Look up identity by IP address | WhoIs |
who_is |
who_is |
whoIs |
| Look up identity by node key | WhoIsNodeKey |
who_is_node_key |
who_is_node_key |
whoIsNodeKey |
| Look up identity with proto and address | WhoIsProto |
who_is_proto |
who_is_proto |
whoIsProto |
| Get TLS certificate and private key | CertPair |
cert_pair |
cert_pair |
certPair |
| Get TLS certificate with minimum validity | CertPairWithValidity |
cert_pair_with_validity |
cert_pair_with_validity |
certPairWithValidity |
| Get current serve configuration | GetServeConfig |
get_serve_config |
get_serve_config |
getServeConfig |
| Set serve configuration | SetServeConfig |
set_serve_config |
set_serve_config |
setServeConfig |
Build & Test
# Rust
cargo test
cargo check
cargo clippy
# Python
uv run pytest
# TypeScript
npm test
npx tsc --noEmit
License
See LICENSE.
Dependencies
~7–12MB
~202K SLoC