Files
puter/src/backend
KernelDeimos c715057065
Docker Image CI / build-and-push-image (push) Has been cancelled
Maintain Release Merge PR / update-release-pr (push) Has been cancelled
release-please / release-please (push) Has been cancelled
test / test-backend (24.x) (push) Has been cancelled
test / API tests (node env, api-test) (24.x) (push) Has been cancelled
test / puterjs (node env, vitest) (24.x) (push) Has been cancelled
feat(puter.js): make home directory default cwd
Make the home directory (AKA "~") the default CWD for puter.js, making
relative paths work in environments other than app environments (i.e.
gui or worker environments).
2026-01-19 13:29:28 -05:00
..
2025-12-18 17:22:49 -08:00

Puter Backend

Part of a High-Level Distributed Operating System

Whether or not you call Puter an operating system (we call it a "high-level distributed operating system"), operating systems for devices are a useful reference point to describe the architecture of Puter. If Puter's "hardware" is services, and Puter's "userspace" is the client side of the API, then Puter's "kernel" is the backend.

Puter's backend is composed of:

  • The Kernel class, which is responsible for initialization
  • A number of Modules which are registered in Kernel for a customized Puter instance.
  • Many Services which are contained inside modules.

Documentation

Can I use Puter's Backend Alone?

Puter's backend is not dependent on Puter's frontned. In fact, you could prevent Puter's GUI from ever showing up by disabling PuterHomepageModule. Similarly, you can run Puter's backend with no modules loaded for a completely blank slate, or only include CoreModule and WebModule to quickly build your own backend that's compatible with any of Puter's services.

What can it do?

Puter's Kernel only initializes modules, nothing more. The modules bring a lot of capabilities to the table, however. Within this directory you'll find modules that:

  • coerce all the well-known AI services to a common interface
  • manage authentication with Wisp servers (this brings TCP to the browser!)
  • manage apps on Puter
  • allow a user to host websites from Puter
  • provide persistent key-value storage to Puter's desktop and apps
  • provide a fast filesystem implementation
  • communicate with other instances of Puter's backend, secured with elliptic curve cryptography
  • provide more services like converting files and compiling low-level code.

diagram of Puter backend connections