JavaScript library to use Session Messenger programmatically. Includes TypeScript and tests. Runs with Bun runtime. https://sessionjs.github.io/docs/
Find a file
2026-01-28 15:11:25 +01:00
.vscode Install prettier and format all files 2026-01-28 00:26:02 +01:00
src Refactoring, versions bump 2026-01-28 15:11:25 +01:00
test Fix crypto_sign_ed25519_pk_to_curve25519 polyfill 2026-01-28 02:21:42 +01:00
.gitignore Add reactions support 2024-07-23 03:25:46 +04:00
.prettierignore Refactoring, versions bump 2026-01-28 15:11:25 +01:00
.prettierrc Install prettier and format all files 2026-01-28 00:26:02 +01:00
bun.lock Refactoring, versions bump 2026-01-28 15:11:25 +01:00
CONTRIBUTING.md Add message encryption 2024-06-08 03:01:01 +04:00
eslint.config.js Install prettier and format all files 2026-01-28 00:26:02 +01:00
LICENSE Update readme 2026-01-28 02:31:24 +01:00
package.json Refactoring, versions bump 2026-01-28 15:11:25 +01:00
README.md Refactoring, versions bump 2026-01-28 15:11:25 +01:00
TERMS.md Initial commit 2024-06-07 23:25:25 +04:00
tsconfig.json Refactoring, versions bump 2026-01-28 15:11:25 +01:00
tsconfig.publish.json Install prettier and format all files 2026-01-28 00:26:02 +01:00

Session.js

Session.js is JavaScript library for programmatic usage of Session messenger by OXEN. Supports server and browser environment with built-in proxy network module. Shipped with TypeScript definitions. Tested with bun:test. It's aimed for Bun users — a modern runtime for JavaScript and alternative to Node.js. But it can also be used on most platforms and runtimes thanks to external modules system and platform-agnostic architecture with vanilla noble cryptography instead of WASM-compiled libsodium and bytebuffer.

Session.js allows you to create:

  • Highly optimized Session bots (hundreds of bots in a single app)
  • Custom Session clients (web-based and native with JS backend)
  • Automation tools for Session

Important

I'm looking for a job! Interested in hiring me? Visit cv.hloth.dev to review my resume & CV.

Features

  • On-demand polling — you decide when to get new messages and whether instance should poll them (and poll settings like frequency) or work just for sending
  • Per-instance storage and network settings — you can attach persistant storage to instance or use in-memory storage for throwaway one-time instances
  • Session.js can be used in browser, keeping private keys on client-side and doing network requests on server-side. See this in action with my full-featured Session Web client!

Project roadmap.

Getting started

Visit documentation website for guide: https://sessionjs.github.io/docs/

Acknowledgements

Donate

hloth.dev/donate · Tor: hlothdevzkti6suoksy7lcy7hmpxnr3msu5waokzaslsi2mnx5ouu4qd.onion/donate

PGP-signed list of my crypto wallets: hloth.dev/donate-pgp-signed.txt · Tor: hlothdevzkti6suoksy7lcy7hmpxnr3msu5waokzaslsi2mnx5ouu4qd.onion/donate-pgp-signed.txt

License

MIT