JavaScript (bun.sh) library to use Session messenger by OXEN programmatically. Includes TypeScript and tests. https://npmjs.com/package/@session.js/client
Find a file
2025-04-21 19:56:50 +04:00
.vscode Refactor instance class code: split to separate files, reorganize imports 2024-07-17 14:31:32 +04:00
src Remove protection from _getProfile method 2025-01-03 01:28:35 +04:00
test Add marking messages as read & messageRead event 2024-07-20 18:23:43 +04:00
.gitignore Add reactions support 2024-07-23 03:25:46 +04:00
bun.lockb Add decryptSogsMessageData 2025-01-03 00:06:59 +04:00
CONTRIBUTING.md Add message encryption 2024-06-08 03:01:01 +04:00
eslint.config.js Add message encryption 2024-06-08 03:01:01 +04:00
LICENSE.md Initial commit 2024-06-07 23:25:25 +04:00
package.json Remove protection from _getProfile method 2025-01-03 01:28:35 +04:00
README.md Add looking for a job note 2025-04-21 19:56:50 +04:00
TERMS.md Initial commit 2024-06-07 23:25:25 +04:00
tsconfig.json Refactor instance class code: split to separate files, reorganize imports 2024-07-17 14:31:32 +04:00
tsconfig.publish.json Add build step with types anyway 2024-06-12 04:12:36 +04: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. Written with blazingly fast Bun, a modern runtime for JavaScript and alternative to Node.js. This package cannot be used with Node.js, it uses a better runtime instead of it. It can also be used with most bundlers that support modern syntax.

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/

Funding

You can donate here: hloth.dev/donate