3.6 KiB
Command Stability
This document classifies the current geth CLI surface for scripts and
downstream projects. The compatibility rules in docs/compatibility.md apply
to stable commands after the first deployment tag.
Stability Levels
- Stable: intended for scripts once the first deployment tag exists. Command
names, flag names, argument meanings, and
--jsonfield meanings should not change within a major release. - Experimental: useful and tested, but the command may still change as the subsystem is hardened. Scripts should pin a geth version and expect migration notes.
- Prototype: proves a shape or workflow. Do not build durable automation on it without expecting replacement or incompatible changes.
Stable
The following command families are intended to be stable automation surfaces:
geth initgeth --home <dir> ...geth daemon run [--ephemeral]geth daemon install|start|stop|status|uninstallgeth daemon service install|uninstall|start|stop|status|printgeth statusgeth doctorgeth node idgeth backup create|restoregeth node list|rename|revoke|grant|revoke-grant|endpoint-add|endpoint-revokegeth node enroll request|submit|import|list|approve|syncgeth peer export|import|list|ping|auth-checkgeth keychain init|status|admin-add|admin-revoke|allowed-signers|verifygeth keychain sign-file|verify-filegeth keychain explain|explain-signergeth auth explain|grant|revoke|syncgeth sync status|nowgeth wait daemon|peer|syncgeth secret status|create|rotate|bearer- Local CAS object commands:
geth cas add|get|hash|has|pin|unpin|cleanup|providers|list|fetch - File-root metadata commands:
geth cas root add|list|scan|sync|apply - File-conflict metadata commands:
geth cas conflict record|list|resolve - SSH certificate and revocation metadata commands under
geth ssh cert ...andgeth ssh revocation ... geth ssh proxy- Restricted
geth ssh admin-shell help|status|node-id geth db add|status|changes|syncgeth kv create|set|get|syncgeth document create|status|set|get|syncgeth pubsub pub|subgeth pipe listen|connect|send|recv|forward-tcp|forward-unixgeth completionsgeth guide
Experimental
The following commands are tested but may still change while the subsystem settles:
geth overlay status|plan|join|leave|interface-plan|up|down|peers|send|recvgeth cas add-privategeth cas get-privategeth keychain verify-sigchaingeth keychain bundle-create|bundle-extract
Migration expectation: overlay membership records and authorization resources should remain readable, but packet runtime flags, platform activation details, and route metadata may change before the first deployment tag. Private CAS writes use an AES-256-GCM envelope, but the command family remains experimental while key envelopes, remote sharing, and forward-secrecy/PCS properties are explicitly out of scope. Prototype BLAKE3-XOR envelopes from earlier pre-deployment builds are rejected with a clear error and should be recreated from plaintext.
The SSHSIGCHAIN verifier and canonical bundle conversion are experimental while SSHSIGCHAIN signing, append storage, automatic distribution, import, head persistence, and independently generated wire vectors are completed. The prior test-only static commands were removed and are not a compatibility path.
Adding Commands
New commands should enter this file in the same change that introduces the CLI surface. Experimental and prototype commands should include a migration or removal expectation before users are encouraged to automate against them.