Documentation menu
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-dir
TEXT
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, -f
Overwrite 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.