Log inStart building →
DOCUMENTATION

Get started with PrjLab.

PrjLab keeps a project and its context together: source files, project instructions, project memory and the sessions you choose to keep. You push from the terminal, browse and share in the browser, and clone the whole picture onto any machine.

1. Create an account

Open Sign in. The same button creates a new account: enter your email address, choose a password, confirm the code we send you, then pick your handle (for example anna). Your handle is how friends find you and how repositories are named: anna/fieldnotes.

Then create your first repository with New repository. Repositories are private: only you and the people you invite can see them.

2. Install the CLI

The CLI is called prj. It needs Node.js 22 or newer. On Linux it stores your sign-in in the system keyring (Secret Service / libsecret), on macOS in Keychain and on Windows in DPAPI; it never writes tokens to a plain file.

npm install -g https://github.com/AbdellahJAIZE/prjlab-cli/releases/download/v0.2.0/prjlab-cli-0.2.0.tgz

Check it works and sign in. prj login opens your browser; nothing is typed into the terminal.

prj --version
prj login
prj whoami

The CLI is open source (MIT): github.com/AbdellahJAIZE/prjlab-cli. Publication on the npm registry is planned; until then the release tarball above is the supported install.

3. Push your first project

Inside your project folder, initialise once, then push to the repository you created. Use your-handle/repository-nameexactly as shown on the repository page.

cd ~/projects/fieldnotes
prj init
prj status          # what would be captured
prj push anna/fieldnotes

push captures regular files, honours your .gitignore and .prjignore, and always skips secrets such as .env, key files and credential folders. Every push creates an immutable version you can open in the browser. After the first push the remote is remembered, so a plain prj push is enough.

4. Clone it anywhere

On another machine, install the CLI, sign in with the same account and clone. Later, prj pull brings that copy up to date and never overwrites edits you made locally: conflicting files are reported instead of replaced.

prj clone anna/fieldnotes        # creates ./fieldnotes
cd fieldnotes
prj pull

5. Share with a friend

Open the repository, choose Access and invite a handle as a reader (view and clone) or writer (also push). The invitation appears on their Repositories page; once accepted they can prj clone anna/fieldnotes too. Only the owner manages access, and removing someone takes effect immediately.

What travels with a project

Put the context you want to keep beside the code, and it is captured with explicit content types:

.prjcontext/instructions/   project instructions (CLAUDE.md and AGENTS.md are recognised too)
.prjcontext/memory/         decisions, notes, project memory
.prjcontext/sessions/       the conversations you chose to keep

Global assistant folders, other projects and machine credentials are never scanned. Review prj status before you push; the filename rules are a safety net, not a complete secret scanner.

Command reference

prj login                      sign in through the browser
prj whoami                     show the signed-in handle
prj logout                     remove this machine's credentials

prj init                       prepare the current folder
prj status                     files that changed since the last capture
prj snapshot                   capture a local version (offline)
prj export <id> <new-dir>      write a local version to a new folder
prj restore <id>               restore a local version in place
prj recover                    finish an interrupted operation

prj push [handle/repo]         upload the current folder as a new version
prj pull [handle/repo]         bring this folder up to date
prj clone <handle/repo> [dir]  copy a repository into a new folder

Repository UUIDs (shown in the page address) are accepted wherever handle/repo is.

Limits and safety

Early-access limits per repository: 1,000 files, 5 MiB per file and 100 MiB per version. Symlinks, hard links and unsafe paths are rejected. Files are encrypted at rest on our servers and only served to current members; PrjLab can read private content to render previews and sharing, so this is not end-to-end encryption.

A lost network reply is safe: run the same command again and the CLI completes the original push or pull instead of creating a duplicate. Questions or problems: open an issue on the CLI repository.