The matured dev-env backport removed dev.sh (which provided `dev up/down/logs/shell`) but the seeded CLAUDE.md files still told users — and Claude sessions, since these symlink into ~/dev/ — to run those commands. `dev` is now just a nav function (cd $DEV_ROOT), so `dev up` silently cd'd and started nothing. Rewrite both Quick-commands / Default-dev-workflow sections to the real command set (lb/prb/dev-status/regtest-start/dev-deploy) and document that FakeWallet startup is manual — there is no `dev up` wrapper.
3.3 KiB
~/dev — lnbits dev workspace
You're working in a dev workspace bootstrapped by lnbits-sensei.
This file is workspace-level orientation; per-project CLAUDE.md files
(e.g. ~/dev/lnbits/CLAUDE.md) layer project-specific gotchas on top.
This file is a symlink into your lnbits-sensei checkout's
files/dev-CLAUDE.md(via home-manager'smkOutOfStoreSymlink). Edits should happen in the checkout and be committed there.
Layout
~/dev/
├── repos/ # bare git repos, one per project
├── <project>/<worktree>/ # worktrees per branch
├── upstream-prs/<topic>/ # PR branches against upstreams
├── shared/, scratch/ # workspace utilities
└── refs/ # curated reference repos (optional)
Rationale: bare-repos + per-project-worktree directories means one git
object database per project (no clone-per-branch churn) and an explicit
PR contract in upstream-prs/. See the lnbits-sensei README's
"Workspace layout" section for the full reasoning.
Quick commands
Installed by lnbits-sensei's dev-env module — standalone binaries plus shell functions sourced into interactive shells:
dev-env-bootstrap— materialize bare repos + worktrees from your declaredprojects(idempotent;--dry-runto preview).lb <worktree>— cd into~/dev/lnbits/<worktree>(e.g.lb dev).g <category> <repo>,ext <name>,prs,shared,reposcover the rest of the tree.prb <repo> <branch>— create a PR worktree branched fromupstream/mainunder~/dev/upstream-prs/;prccleans up,prllists.dev-status— dirty + ahead/behind across every worktree.wts/wtusync worktrees / fetch upstream;rebase statusshows which forks need rebasing onto upstream.regtest-start <worktree>/regtest-stop— Bitcoin/Lightning regtest stack (only whendevEnv.regtest.enable = true; needs docker).dev-deploy <host>—nixos-rebuildagainst your deploy flake.dev-tm <session>— launch a declarative tmux session.
Starting lnbits for iteration: there is no dev up wrapper.
FakeWallet (LNBITS_BACKEND_WALLET_CLASS=FakeWallet) is the default
path — no docker; run lnbits directly from the worktree (lb dev, then
lnbits's own run command). Use regtest-start only when you need real
channels/payments.
Reference docs
Full reference lives in the lnbits-sensei checkout's docs/:
docs/remotes.md— three remote-topology patterns (upstream-only / github-fork / multi-remote-with-private).docs/upstream-prs.md— PR workflow with a primer for anyone new to fork-based contribution.docs/lnbits-upstream-flow.md— howlnbits/lnbitsitself moves (thedev/mainbranch split, squash-merge convention).docs/lnbits-workspace-notes.md— practical gotchas: port choice,LNBITS_SRCbuild-context traps, extension-folder-upgrade wiping forks, Nostr key handling, CLINK scope, fork versioning, settings precedence (.envvs DB).
Per-project orientations
Per-project CLAUDE.md files are placed at the worktree root:
~/dev/lnbits/CLAUDE.md— LNbits dev gotchas (settings precedence, frontend rules, auth decorators, …).
These are also symlinked from your lnbits-sensei checkout (under
files/); the seeding is driven by lnbits-sensei.devEnv.claude.*
options.