fulla

command module
v0.0.0-...-e24c95d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 6, 2026 License: AGPL-3.0, MIT Imports: 4 Imported by: 0

README

Fulla

A local-first secret custodian for humans, agents, and independent machines.

Fulla is under implementation. It is not yet suitable for live credential cutover. The first preview will be v0.1.0 after the documented acceptance gates.

One Go binary, exact-byte entries, explicit process injection, mutually pinned peer synchronization, encrypted history, and separately protected recovery. See the product contract and implementation plan.

Ancestry and license

Fulla is an independent Agensfield descendant of biox/pa and Arda's safe-sync fork. It is not endorsed by upstream. The transfer framing derives from fork commit f75734b8775f72d5d2f9630c08c2b48bdb6d8104; original notices are preserved. The combined work is licensed AGPL-3.0-or-later, see LICENSE. The maintained age plugin client adaptation retains its BSD notices in THIRD_PARTY_NOTICES.

Fulla protects stored and transported secrets. Processes running as the owning Unix user, explicitly selected editors/plugins, and injected child programs are trusted. It does not isolate agents sharing that account.

Identity input

New stores use native age identities. Compatible age plugins use explicitly installed executables. Encrypted OpenSSH Ed25519/RSA identities can be unlocked through hidden controlling-terminal input; no decrypted identity is written. --json, --non-interactive, and remote handlers never prompt and return interaction.required if unlocking is necessary. Legacy encrypted PEM files without an embedded public key are unsupported.

Passphrase-protected recovery

fulla transfer export --manifest names.json --output capsule.age --passphrase asks twice for a hidden recovery passphrase through the controlling terminal. The manifest is a JSON array of exact entry names. transfer verify capsule.age --passphrase verifies independently of a live store; transfer import capsule.age --passphrase imports without replacing existing entries. Full-state backup export/restore also accepts this protection source.

--passphrase is a boolean input selector, never a secret argument. Use --passphrase-fd N for automation; JSON/noninteractive mode refuses terminal input. Passphrases must contain 20 to 4096 bytes. Store the recovery passphrase independently of the store being recovered.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
ageplugin/format
Package format implements the age file format.
Package format implements the age file format.
cli
Package cli owns Fulla's versioned machine envelope and command dispatch.
Package cli owns Fulla's versioned machine envelope and command dispatch.
clipboard
Package clipboard owns text clipboard access and digest-only expiry workers.
Package clipboard owns text clipboard access and digest-only expiry workers.
config
Package config resolves the deliberately small, non-secret user configuration.
Package config resolves the deliberately small, non-secret user configuration.
crypt
Package crypt owns age encryption and identity parsing.
Package crypt owns age encryption and identity parsing.
fault
Package fault defines the public, secret-free operational error contract.
Package fault defines the public, secret-free operational error contract.
remote
Package remote implements mutually authenticated, session-bound Fulla SSH RPC.
Package remote implements mutually authenticated, session-bound Fulla SSH RPC.
securefs
Package securefs provides rooted private-file operations for local stores.
Package securefs provides rooted private-file operations for local stores.
store
Package store implements the pa-v1 layout and Fulla's private metadata.
Package store implements the pa-v1 layout and Fulla's private metadata.
scripts
acceptance-sshd command
acceptance-sshd is a disposable loopback-only SSH fixture.
acceptance-sshd is a disposable loopback-only SSH fixture.
release command
Command release creates deterministic public distribution artifacts.
Command release creates deterministic public distribution artifacts.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL