CLI Reference
pals init
Create the local config directory and default config file.
$ pals init [OPTIONS]
What it does
Creates the ProgressPals config directory (default: $XDG_CONFIG_HOME/progresspals, typically ~/.config/progresspals on Linux/macOS) and writes a default config.json with mode 0600. Prints the path where the libp2p identity.key will be created on first server start (i.e., when you next run pals create, pals join, or pals serve).
Run this exactly once per machine. Re-running without --force is a no-op.
Options
--config-dirTEXT
Where to put the pals config. Use this when you want to manage multiple swarms from the same machine without their configs colliding.
Default:
$XDG_CONFIG_HOME/progresspals--force, -fOverwrite an existing
config.json. Use carefully — your swarm_id, swarm_secret, identity_path, and operator/peer credentials live in this file. Note that --force does NOT touch identity.key (a separate file at identity_path); your peer ID is preserved.Examples
Standard one-machine setup:
default init
$pals init
✓ config written to ~/.config/progresspals/config.json
identity.key will be created at ~/.config/progresspals/identity.key on first server start
Run two swarms from the same machine using separate config dirs:
multi-swarm
$pals init --config-dir ~/.config/progresspals-work
$pals init --config-dir ~/.config/progresspals-personal
Don’t copy
identity.key between machines. Each machine should have its own identity. Copying it produces two peers with the same identity, which the libp2p layer cannot distinguish.