A lightweight, fast, universal and typed Bluesky API wrapper for Apps & Bots.
tsky is still in active development and is not ready for production use. If you want to contribute to the project, please read the CONTRIBUTING.md file or join our Discord Server.
tsky is a lightweight, fast, universal and typed Bluesky API wrapper for Apps & Bots. It's designed to be easy to use, lightweight and straightforward to use. It's built with TypeScript and has full type support.
It was primarily built for the Nimbus Client but can be used in any other project that requires Bluesky API integration.
# NPM
npm install tsky
# Yarn
yarn add tsky
# PNPM
pnpm add tsky
# Bun
bun add tsky
Use an identity & password login:
import { Tsky } from 'tsky';
import { CredentialManager } from '@atcute/client';
const manager = new CredentialManager({ service: 'https://bsky.social' });
await manager.login({
identifier: 'alice.tsky.dev',
password: 'password',
});
or the @atcute/oauth-browser-client:
import { Tsky } from 'tsky';
import { OAuthUserAgent, finalizeAuthorization } from '@atcute/oauth-browser-client';
// get a session as described at: https://github.com/mary-ext/atcute/tree/trunk/packages/oauth/browser-client
const manager = new OAuthUserAgent(session);
and then initialize the tsky client:
const tsky = new Tsky(manager);
// get the profile of a user
const profile = await tsky.bsky.profile('did:plc:giohuovwawlijq7jkuysq5dd');
console.log(profile.handle);
If you want to contribute to this project, please read the CONTRIBUTING.md file.
This project is licensed under the MIT License - see the LICENSE file for details.