Skip to content

lemonfiber — command reference

Generated from the command line’s own declarations. Run just reference to rewrite it.

Orchestrates a fully open-source, self-hosted media stack
Usage: lemonfiber [OPTIONS] [COMMAND]
Commands:
setup Set up the stack by answering a few questions
version Report the versions in play
forms List the forms this stack has, and what each one is for
migrate See what is already on this machine, and take it over if you choose to
up Start a form, or the union of several
down Stop and remove what a form started
switch Make these forms the active set, leaving shared services running
restart Restart services without touching the rest
pull Fetch newer images without applying them
ps Report what each service is actually doing
logs Show what services are saying
config Read or change one setting
alerts Choose how much lemonfiber tells you about, in plain language
quality Choose how good your media should look, in plain language
doctor Run the checks that prove the stack is doing what it should
watch Guard the data location while forms run, stopping them if it disappears
hosting Say what this machine keeps running when no terminal is open
trace Follow one show or film across the services — "where is my show?"
household Show who is in the household, what each may watch and ask for, and what each asked for
walkthrough Add one thing, end to end, and watch every step of it happen
explain Say what one of this product's words means
stuck List the items whose downloads are stuck — the landing point for "N stuck", each named so `lemonfiber trace` follows it on its own
front-door Name the one address to send somebody who lives here
outbound List everything that leaves this machine, and what refusing each of it costs
credentials Say which credentials this stack holds, or act on one of them
stored List what lemonfiber keeps on this machine, where it is, and why
clients Say which app to watch on, for each kind of device somebody in the house has
invite Offer somebody in the house an account they can claim
reissue Let somebody set a new password, without you choosing or seeing it
remove Take somebody out of the household, in both places they have an account
forget Remove everything lemonfiber keeps on this machine
uninstall Take lemonfiber off this machine, at one of four removals
space Account for the disk: where the room went, when it runs out, what can go
stop-seeding Stop seeding one completed download, and let its files go with it
bandwidth Account for the line: what it carries, what the stack takes, what that costs
seed Wire the stack's services to each other, idempotently
adopt Adopt your current edits as lemonfiber's expected state
reset Put the stack back to lemonfiber's own state, reverting every edit you made
backup Back up your configuration to an archive, so it stops being precious
support Gather everything a person helping you would ask for, with every value not named safe replaced by a stand-in
ui Serve the web interface, for as long as you leave it running
restore Restore your configuration from a backup archive
help Print this message or the help of the given subcommand(s)
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help
-V, --version
Print version
Set up the stack by answering a few questions.
Interactive by default. Given the flags below, it runs unattended: each answers a question the wizard would otherwise ask, and `--yes` stands in for the confirmation. A non-interactive run missing a flag it needs is told which, rather than left waiting on input that will not come.
Usage: lemonfiber setup [OPTIONS]
Options:
--json
Print machine-readable output
--status
Report where setup stands and ask nothing. Takes precedence over the answers below, so a run that asks where it is never also answers
--dry-run
Say what would happen, and change nothing
--yes
Apply without a prompt to confirm — required for an unattended run
--force
Take the stack from a run that claimed it and did not give it back
--protocols <PROTOCOLS>
How to fetch content: `both`, `usenet`, `torrent`, or `none`
--data-location <PATH>
Where the library and downloads live
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
--indexer-url <URL>
An indexer's API base URL
--indexer-key <KEY>
The indexer's API key
--usenet-host <HOST>
The Usenet provider's hostname
--usenet-port <PORT>
The port the Usenet provider answers on (defaults to 563)
--usenet-user <USER>
The Usenet account username
--usenet-pass <PASS>
The Usenet account password
--usenet-tls <BOOL>
Whether the Usenet connection uses TLS (defaults to yes)
[possible values: true, false]
--library <MODE>
How to serve the library: `docker`, `native`, or `none`
--service-user <UID:GID>
The container user, as `UID:GID`
--vpn <BOOL>
Whether a VPN carries the torrent traffic. Where torrents are chosen and this is absent, the run proceeds unprotected and records that it did
[possible values: true, false]
--household <BOOL>
Whether others in the home will use it
[possible values: true, false]
--notifications <APPETITE>
What to be told about: `problems`, `completions`, or `everything`
--autostart <BOOL>
Whether to start the stack when the machine boots
[possible values: true, false]
-h, --help
Print help (see a summary with '-h')
Report the versions in play
Usage: lemonfiber version [OPTIONS]
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help
List the forms this stack has, and what each one is for.
A form says which part of the stack to run. They come from the stack rather than from lemonfiber, so a stack of your own names its own.
Naming one says what starting it would come to — the services it holds, and anything your configuration leaves out — without starting anything.
Usage: lemonfiber forms [OPTIONS] [FORMS]...
Arguments:
[FORMS]...
The forms to describe; none lists them all
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
See what is already on this machine, and take it over if you choose to.
With nothing named it surveys: the stacks already standing here, the ports they hold that lemonfiber would want, and anything it could not take over as it stands. Nothing is started, stopped, moved, or written.
Usage: lemonfiber migrate [OPTIONS] [COMMAND]
Commands:
adopt Take over the setup already here, so lemonfiber manages it
beside Run alongside the setup already here, on ports nothing else is using
import Copy what the setup already here holds into lemonfiber's own services
replace Stand in place of the setup already here, stopping it and deleting none of it
help Print this message or the help of the given subcommand(s)
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Take over the setup already here, so lemonfiber manages it.
Without `--confirm` it says what adopting would come to and writes nothing — which databases a newer version would upgrade, and where their data sits so it can be backed up first.
Usage: lemonfiber migrate adopt [OPTIONS]
Options:
--confirm
Go ahead, having backed up the data named
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Run alongside the setup already here, on ports nothing else is using.
Without `--confirm` it says where each service would listen and writes nothing. Nothing of the existing setup is touched either way.
Usage: lemonfiber migrate beside [OPTIONS]
Options:
--confirm
Go ahead, having seen where each service would listen
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Copy what the setup already here holds into lemonfiber's own services.
Without `--confirm` it names what it would carry and carries nothing. Nothing of the existing setup is written to either way.
Usage: lemonfiber migrate import [OPTIONS]
Options:
--confirm
Go ahead, having seen what would be carried
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Stand in place of the setup already here, stopping it and deleting none of it.
Without `--confirm` it names what it would stop and stops nothing. Nothing is deleted either way, so the old stack can be started again.
Usage: lemonfiber migrate replace [OPTIONS]
Options:
--confirm
Go ahead, having seen what would stop
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Start a form, or the union of several
Usage: lemonfiber up [OPTIONS] [FORMS]...
Arguments:
[FORMS]...
The forms to start; none starts everything the stack declares
Options:
--json
Print machine-readable output
--service <NAME>
Start only these services, leaving the rest of the form alone
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help
Stop and remove what a form started
Usage: lemonfiber down [OPTIONS] [FORMS]...
Arguments:
[FORMS]...
The forms to stop; none stops everything the stack declares
Options:
--json
Print machine-readable output
--service <NAME>
Stop only these services, leaving the rest of the form running
--dry-run
Say what would happen, and change nothing
--wait
Let anything still downloading finish before stopping.
Not for a stop of named services: what is in flight is a question about the download clients a form holds, so naming two services that are not download clients would wait on downloads stopping them cannot interrupt.
--force
Take the stack from a run that claimed it and did not give it back
--yes
Stop without asking about anything still downloading
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Make these forms the active set, leaving shared services running.
Only what falls outside the new shape is stopped. A service the old shape and the new one both hold keeps running rather than being restarted, so a download in flight is not interrupted to change the stack around it.
Usage: lemonfiber switch [OPTIONS] <FORMS>...
Arguments:
<FORMS>...
The forms to switch to
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Restart services without touching the rest
Usage: lemonfiber restart [OPTIONS] <FORM> [SERVICES]...
Arguments:
<FORM>
The form holding them
[SERVICES]...
The services to restart; none restarts the whole form
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help
Fetch newer images without applying them
Usage: lemonfiber pull [OPTIONS] <FORMS>...
Arguments:
<FORMS>...
The forms whose images to fetch
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help
Report what each service is actually doing
Usage: lemonfiber ps [OPTIONS] [FORMS]...
Arguments:
[FORMS]...
The forms to report on; none reports the whole stack
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help
Show what services are saying
Usage: lemonfiber logs [OPTIONS] [SERVICES]...
Arguments:
[SERVICES]...
The services to read; none reads them all
Options:
--form <FORM>
Read only the services a form declares
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
-f, --follow
Keep reading as new lines arrive
--force
Take the stack from a run that claimed it and did not give it back
--watch
Read them on a screen that can be scrolled back and filtered
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
--tail <TAIL>
How many existing lines to begin with
[default: 50]
-h, --help
Print help
Read or change one setting
Usage: lemonfiber config [OPTIONS] <COMMAND>
Commands:
get Read one setting
set Change one setting
show Show every setting, with credentials withheld
help Print this message or the help of the given subcommand(s)
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help
Read one setting
Usage: lemonfiber config get [OPTIONS] <KEY>
Arguments:
<KEY>
The setting to read
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help
Change one setting.
Shows the difference between what the setting holds and what it would hold, and what changing it affects. A change setup catalogued as consequential — the data location, the download protocols, the user the services run as — is staged rather than applied until `--confirm`. A replacement credential is proven against its live service before the one it replaces is discarded.
Usage: lemonfiber config set [OPTIONS] <KEY> <VALUE>
Arguments:
<KEY>
The setting to change
<VALUE>
What to change it to
Options:
--confirm
Go ahead, having read what the change affects.
Also stores a replacement credential that nothing could be reached to prove — for a machine that is offline, or a provider it cannot see, and writes over an edit made outside lemonfiber, or stops a download that is still coming down.
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--wait
Let anything still coming down finish before the change is made
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Show every setting, with credentials withheld
Usage: lemonfiber config show [OPTIONS]
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help
Choose how much lemonfiber tells you about, in plain language
Usage: lemonfiber alerts [OPTIONS] <COMMAND>
Commands:
show Show what you are told about, and what else you could be
set Choose how much to be told
help Print this message or the help of the given subcommand(s)
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help
Show what you are told about, and what else you could be
Usage: lemonfiber alerts show [OPTIONS]
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help
Choose how much to be told
Usage: lemonfiber alerts set [OPTIONS] <PRESET>
Arguments:
<PRESET>
How much to hear: problems-only, with-completions, or everything
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help
Choose how good your media should look, in plain language
Usage: lemonfiber quality [OPTIONS] <COMMAND>
Commands:
show Show the quality choice in force, and what each preset means and costs
set Choose a preset — for everything, or for one media type
reapply Re-assert the recorded preset over a Recyclarr config you have hand-edited
upgrade Upgrade existing content to the chosen quality — re-download what is already here at the higher quality
help Print this message or the help of the given subcommand(s)
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help
Show the quality choice in force, and what each preset means and costs
Usage: lemonfiber quality show [OPTIONS]
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help
Choose a preset — for everything, or for one media type
Usage: lemonfiber quality set [OPTIONS] <PRESET>
Arguments:
<PRESET>
The preset: space-saving, balanced, high-quality, or maximum
Options:
--for <MEDIA_TYPE>
Apply it to one media type (tv or movies) rather than everything
--json
Print machine-readable output
--confirm
Confirm a choice this machine would have to transcode in software
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help
Re-assert the recorded preset over a Recyclarr config you have hand-edited.
An ordinary run keeps your edits; this is the explicit consent to let the preset win instead.
Usage: lemonfiber quality reapply [OPTIONS]
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Upgrade existing content to the chosen quality — re-download what is already here at the higher quality.
A large, bandwidth-expensive operation, separate from a preset change (which only affects future acquisitions). States the cost and does nothing until `--confirm`.
Usage: lemonfiber quality upgrade [OPTIONS]
Options:
--confirm
Go ahead and trigger the re-search, having seen the cost
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Run the checks that prove the stack is doing what it should
Usage: lemonfiber doctor [OPTIONS]
Options:
--json
Print machine-readable output
--only <CATEGORY_OR_CHECK>
Run one category of check, such as `vpn`, or one check by the name a finding gives it, such as `vpn.killswitch`
--disruptive
Include the checks that disturb the running system
--dry-run
Say what would happen, and change nothing
--accept <CHECK>
Answer a warning about a choice — `vpn.unprotected`, say — so it stops leading. Only something this run warns about can be answered
--force
Take the stack from a run that claimed it and did not give it back
--fix
Offer to put right what lemonfiber can, asking about each first.
A plain run only looks. This one says what each repair would do and what else changes if it does, and waits to be told.
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
--yes
Carry the repairs out without asking, having decided in advance
--fix-disruptive
Include the checks that disturb the running system while repairing.
Named apart from the field it sits beside: `doctor` already has a `--disruptive`, and clap keys an argument by the field name unless told otherwise — so two flags that read differently on the command line would be one argument underneath.
--undo
Put back what the last repair changed.
Asked for the same way a repair is, because it is the same errand read backwards. It reverses that one repair and nothing else: the wiring lemonfiber seeded and the choices your first run wrote are left where they are.
-h, --help
Print help (see a summary with '-h')
Guard the data location while forms run, stopping them if it disappears
Usage: lemonfiber watch [OPTIONS] <FORMS>...
Arguments:
<FORMS>...
The forms to stop if the data location is lost
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help
Say what this machine keeps running when no terminal is open.
Two of this program's commands have to keep running to be worth anything — the guard on the data location, and the clock that closes requests nobody rules on — and both stop when the window they were started in closes. This is what hands them to the machine instead.
Asked nothing it reports what stands between each of them and this machine: whether one is installed, whether the system is actually running it, where its words are written, and — on a platform this program cannot configure — what to do instead of it. Installed is not running, and the two are never reported as one thing.
Name one of the two words underneath to install one or take it back.
Usage: lemonfiber hosting [OPTIONS] [COMMAND]
Commands:
install Have this machine keep one of them running, now and after a restart
remove Take one back off this machine, leaving nothing behind
help Print this message or the help of the given subcommand(s)
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Have this machine keep one of them running, now and after a restart.
Installs it into your own account — no administrator rights, and nothing another account on this machine inherits. It starts it as well as installing it, and says so, along with where a command with no terminal writes what it would have said in one.
Usage: lemonfiber hosting install [OPTIONS] <WHAT> [FORMS]...
Arguments:
<WHAT>
Which one: the guard on the data location, or the clock on requests
Possible values:
- watch: The guard on the data location
- expiring: The clock that closes requests nobody has ruled on
[FORMS]...
The forms the guard stops if the data location is lost. The guard alone takes them, and it will not be installed without them
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Take one back off this machine, leaving nothing behind.
The service definition, its registration, and its place in your login items. Asked about one that is not installed, it says so rather than failing.
Usage: lemonfiber hosting remove [OPTIONS] <WHAT>
Arguments:
<WHAT>
Which one
Possible values:
- watch: The guard on the data location
- expiring: The clock that closes requests nobody has ruled on
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Follow one show or film across the services — "where is my show?".
Searched for the way you would name it, not by an internal id. Reports how far it got and, where it plainly stopped, why. A show is reported season by season: how many episodes are here, and what each one that is not is waiting on.
Something monitored that has never been grabbed stopped for one of two reasons, and nothing on this machine can tell them apart: the indexers carry nothing for it, or they carry releases the quality you chose rejects. `--search` asks them.
Usage: lemonfiber trace [OPTIONS] <TERM>...
Arguments:
<TERM>...
The show or film to follow, named as you would say it
Options:
--json
Print machine-readable output
--season <SEASON>
Narrow to one season, instead of every season of the show
--dry-run
Say what would happen, and change nothing
--search
Ask the indexers what they carry, to tell "nothing at your quality" from "nothing at all". Spends one real search against their daily allowance
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Show who is in the household, what each may watch and ask for, and what each asked for.
Everybody the media server holds an account for — including those who have asked for nothing, and the invitations nobody has taken up yet. Each person carries what they may watch and when they were last seen; their requests read in the words they would use rather than the services' own, and each named one links to its full trace.
Each person also carries what they may ask for: how much a period allows them, how much of it is gone, and when there is room again. A request nobody has ruled on shows how long it has been waiting and about how much room it would want.
Name one of the four things underneath to change any of that, to answer one request that is waiting, or to arrange what becomes of the ones nobody answers.
Usage: lemonfiber household [OPTIONS] [COMMAND]
Commands:
allow Choose what happens to what the household asks for, and how much it may ask
approve Let one waiting request through, by the number the household list gives it
decline Turn one waiting request down, saying why
expiring Close the requests nobody has ruled on, once they have waited too long
help Print this message or the help of the given subcommand(s)
Options:
--json
Print machine-readable output
--member <MEMBER>
Narrow to one member, named the way you would say it
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Choose what happens to what the household asks for, and how much it may ask.
Naming only a limit leaves the policy alone, and naming only a policy leaves the limit alone — saying nothing about something is not choosing it.
Television is counted a season at a time, because that is how the request service counts it: one ask for a six-season series spends six.
Usage: lemonfiber household allow [OPTIONS]
Options:
--json
Print machine-readable output
--member <MEMBER>
Set it for one person instead of for the whole household
--dry-run
Say what would happen, and change nothing
--policy <POLICY>
What happens to a request: trusted, within-a-limit, or everything-waits
--force
Take the stack from a run that claimed it and did not give it back
--requests <REQUESTS>
How many requests a period allows. Needs `--days` beside it
--days <DAYS>
How long that period is, in days. Needs `--requests` beside it
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Let one waiting request through, by the number the household list gives it.
Refused where there is no room left on the disk, and said as the disk rather than as anybody's limit — raising a limit would change nothing.
Usage: lemonfiber household approve [OPTIONS] <REQUEST>
Arguments:
<REQUEST>
The request, by the number beside it
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Turn one waiting request down, saying why.
The reason is required and it does not travel: the request service tells whoever asked that it was declined and carries no reason with it, so what you write here is yours to pass on.
Usage: lemonfiber household decline [OPTIONS] --reason <REASON> <REQUEST>
Arguments:
<REQUEST>
The request, by the number beside it
Options:
--json
Print machine-readable output
--reason <REASON>
Why, in a few words
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Close the requests nobody has ruled on, once they have waited too long.
Nothing is closed until you say how long is too long, and there is no period this chooses for you. Naming one records it and stops: the household is told about it, on the list you read and in the message each member is handed, before anything is closed.
Run with nothing named, it does the closing — and it holds this terminal until you stop it or arrange something else, because lemonfiber starts nothing by itself. Whoever asked is told why, at the address they already gave the request service.
Usage: lemonfiber household expiring [OPTIONS]
Options:
--after <AFTER>
How many days a request may wait before it is closed. Records it and stops
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--never
Stop closing anything for waiting, whatever was arranged before
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Add one thing, end to end, and watch every step of it happen.
The walk a first run is offered: search the indexers, grab a release, download it, import it, and see it appear in the library — narrated as it goes, so that afterwards you know what your stack does because you watched it do it. If any link is broken this is where it shows, with the step named and a way out.
Name something, or name nothing and be suggested something likely to work.
Usage: lemonfiber walkthrough [OPTIONS] [ITEM]...
Arguments:
[ITEM]...
What to add, named as you would say it
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Say what one of this product's words means.
A report explains the words it used underneath itself, in a sentence. This is the longer form, for somebody who wants it — nothing needs it in order to act, which is the difference between an explanation offered and one imposed.
Name a word, or name nothing and be told which words there are.
Usage: lemonfiber explain [OPTIONS] [WORD]...
Arguments:
[WORD]...
The word, as you would say it
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
List the items whose downloads are stuck — the landing point for "N stuck", each named so `lemonfiber trace` follows it on its own
Usage: lemonfiber stuck [OPTIONS]
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help
Name the one address to send somebody who lives here.
The stack publishes several things to your network and only one of them is somewhere to begin. This says which, why the others are not, and — where this stack runs nothing anybody could begin at — that there is no address to send rather than naming the nearest thing that would open.
Usage: lemonfiber front-door [OPTIONS]
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
List everything that leaves this machine, and what refusing each of it costs.
lemonfiber's own requests first — where each goes, why, exactly what travels, whether it is on, the setting that switches it off and what stops working when it is — then the requests the stack's own services make, which are theirs rather than lemonfiber's.
Usage: lemonfiber outbound [OPTIONS]
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Say which credentials this stack holds, or act on one of them.
Every secret in the stack in one list, whoever produced it: what each is, what authenticates with it, where the value lives and where it stands — never the value itself — and what keeping them in files does and does not protect against. `--rotate` replaces one, proving the replacement before the existing value stops being in force; `--reveal` prints one, and asks first.
Usage: lemonfiber credentials [OPTIONS]
Options:
--json
Print machine-readable output
--reveal <NAME>
Print one credential's value. Asks for confirmation before it prints
--dry-run
Say what would happen, and change nothing
--rotate <NAME>
Replace one credential, proving the replacement against the live service before the existing value stops being the one in force
--confirm
Yes, print it in the clear — having read what that costs
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
List what lemonfiber keeps on this machine, where it is, and why.
Everything it writes sits under two directories. This names each thing under them, says what it is for, and marks the ones holding a credential — and it names what is *not* lemonfiber's, because your library being absent from the list is the part worth being sure about.
Usage: lemonfiber stored [OPTIONS]
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Say which app to watch on, for each kind of device somebody in the house has.
The client landscape is uneven and it matters which app is used: some devices have an official one that works, and a smart television may have nothing worth using. This says which is which, names a browser as the answer that always works and needs no installation, and where a device is badly served says what to do instead rather than leaving somebody to find out by failing.
Usage: lemonfiber clients [OPTIONS]
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Offer somebody in the house an account they can claim.
Makes them an account on the media server with no password on it, and prints the one address to send them. Whoever sets the first password claims it; an invitation nobody takes up is withdrawn.
Usage: lemonfiber invite [OPTIONS] <NAME>
Arguments:
<NAME>
What they will sign in as
Options:
--json
Print machine-readable output
--library <NAME>
Let them watch only these libraries, named as the media server names them; none lets them watch all of them
--age-limit <AGE>
Hold back anything the media server rates above this age — 0, 7, 12, 15 and 18 are the steps offered; none sets no limit at all
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--unrated <CHOICE>
What to do about content the media server has no rating for; anybody being narrowed has it held back unless this says otherwise
Possible values:
- block: Hold it back
- allow: Let it through
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Let somebody set a new password, without you choosing or seeing it.
Their account goes back to having no password on it — the state a fresh invitation leaves it in — so they claim it again by setting the first one themselves. Their old password stops working immediately. What this prints is the invitation to send them: the same address, the same code.
Usage: lemonfiber reissue [OPTIONS] <NAME>
Arguments:
<NAME>
Whose account to make claimable again
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Take somebody out of the household, in both places they have an account.
Revokes access to the media server and to the request service. Their watch history goes with the account — the media server offers no way to keep it — and the request service destroys what they asked for. Because none of that can be got back, it says what would go and does nothing until `--confirm`.
Usage: lemonfiber remove [OPTIONS] <NAME>
Arguments:
<NAME>
Whose account to take away, as `lemonfiber household` shows them
Options:
--confirm
Go ahead and remove them, having seen what goes
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Remove everything lemonfiber keeps on this machine.
The two directories and everything under them. Your library, your downloads and the containers are not lemonfiber's and are never touched. Because it throws work away it lists what would go and does nothing until `--confirm`.
Usage: lemonfiber forget [OPTIONS]
Options:
--confirm
Go ahead and remove it, having seen what would go
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Take lemonfiber off this machine, at one of four removals.
`stop` removes nothing and stops the services. `services` removes the containers, the network they were on and the images pulled for them. `configuration` removes each service's own settings and everything lemonfiber keeps, credentials and all. `media` removes your library and your downloads, and is never bundled with any of the others.
Naming a removal lists exactly what it would take — every container, image and path, with what each occupies — and does nothing. `--confirm` carries it out. The one that reaches your library takes no bare yes: the listing prints a name for itself and `--agreed` answers that name, so an answer given against one reading of your disk cannot be spent on another.
Usage: lemonfiber uninstall [OPTIONS] <REMOVAL>
Arguments:
<REMOVAL>
Which removal: `stop`, `services`, `configuration` or `media`
Possible values:
- stop: Remove nothing; stop the services
- services: Remove the containers, their network and the images pulled for them
- configuration: Remove each service's own settings, everything lemonfiber keeps, and the credentials in both
- media: Remove the library and the downloads
Options:
--confirm
Go ahead, having read what would go
--json
Print machine-readable output
--agreed <NAME>
The listing being answered, as the run that printed it named it
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--wait
Let anything still coming down finish before the services stop
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Account for the disk: where the room went, when it runs out, what can go.
Says when the disk will be full rather than that it already is, counting what is queued against what is left. Breaks the rest down by where it went, and marks what could be got back — the downloads nothing ever imported and the archives already unpacked cost nothing at all. Those two are what `--confirm` takes, and nothing else ever is: a torrent still seeding is named with what removing it does to your standing with the tracker and left with you, and nothing you asked to be left alone is on offer at any level of fullness.
Usage: lemonfiber space [OPTIONS]
Options:
--confirm
Go ahead and remove what was listed as costing nothing
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Stop seeding one completed download, and let its files go with it.
Everything the disk account names and deliberately leaves alone is asked for here instead, one download at a time. Named on its own it says what that download is, what it occupies, where it stands and, while it is still seeding, what removing it does to a private tracker's opinion of you. It removes nothing, and prints a name for that offer; answering with that name is the yes. There is no other way to say it, because a blanket confirmation would be agreement from somebody who had not read the cost.
Usage: lemonfiber stop-seeding [OPTIONS] <DOWNLOAD>
Arguments:
<DOWNLOAD>
The completed download, as the account and the client both name it
Options:
--json
Print machine-readable output
--offer <NAME>
The offer being answered, as the run that made it printed it
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Account for the line: what it carries, what the stack takes, what that costs.
Asked nothing it reports — the limits in force, which side of your day the clients say they are on, and whether they are actually keeping to what they were given. Asked for a limit it declares one and hands it to every download client, then reads back what each says, because a client that accepts a setting and does not apply it looks exactly like one that did.
Nothing here touches anybody watching from your own library, and nothing here shapes this machine's traffic. It sets limits inside lemonfiber's own download clients and nowhere else.
Usage: lemonfiber bandwidth [OPTIONS]
Options:
--down <SHARE OR RATE>
How much of the line downloads may take: a share, a rate, or `unlimited`.
A share is written with a per-cent sign — `50%` — and is measured against what the line was last seen to carry, which is shown beside it. A rate is written as a size a second, as in `2MiB`.
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--up <SHARE OR RATE>
How much of it uploads may take.
Set apart from the download and left alone unless you say otherwise. Home connections are lopsided and a saturated uplink slows everything down, downloads included, so this defaults to something more careful than the figure you give above.
--active <FROM-TO>
The hours the house is awake, when the limits apply: `07:00-23:00`.
Outside them the stack has the line. The hours are kept by the download clients themselves, on your zone's clock, so they follow the wall clock through the daylight-saving changes. `none` takes the schedule away and leaves the limits standing around the clock.
--force
Take the stack from a run that claimed it and did not give it back
--line <DOWN/UP>
What this line carries, if you know: `60MiB/6MiB`, download first.
Only needed to set a share before lemonfiber has seen the line at full speed. It measures as it goes otherwise, from what the downloads achieve when nothing is holding them back.
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
--cap <SIZE>
A monthly allowance for what this stack itself moves: `1TiB`.
Counts only lemonfiber's own download clients. Everything else in the house is on the same line and is not counted, so your provider's meter will read higher. `none` takes the cap away.
--when-exceeded <WHAT>
What happens when that cap is reached: `pause`, `throttle` or `continue`.
Chosen now rather than asked at the time, which arrives at two in the morning on a stack nobody is watching.
--unrestricted-for <MINUTES>
Lift the limits for this many minutes, then put them back.
For the evening you want something now and know nobody else is affected. Time-boxed on purpose, so it cannot be left on.
-h, --help
Print help (see a summary with '-h')
Wire the stack's services to each other, idempotently
Usage: lemonfiber seed [OPTIONS]
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help
Adopt your current edits as lemonfiber's expected state.
A value you changed by hand reports as drift until you adopt it; once adopted it is kept across future seeds and restores. Wires what is missing as a seed does, and promotes every drifted value to yours.
Usage: lemonfiber adopt [OPTIONS]
Options:
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Put the stack back to lemonfiber's own state, reverting every edit you made.
The opposite of adopt: it discards your hand-edits to the stack files and restores lemonfiber's own. Because it throws work away, it names exactly what will be lost and does nothing until `--confirm` — run it once to see the diffs, again with `--confirm` to reset.
Usage: lemonfiber reset [OPTIONS]
Options:
--confirm
Go ahead and revert, having seen what will be lost
--json
Print machine-readable output
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')
Back up your configuration to an archive, so it stops being precious
Usage: lemonfiber backup [OPTIONS]
Options:
--json
Print machine-readable output
--service <SERVICE>
Back up one service's configuration instead of the whole stack
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help
Gather everything a person helping you would ask for, with every value not named safe replaced by a stand-in.
A bare run writes nothing. It collects, redacts, and reads the result back looking for anything that still resembles a credential, then says what the bundle would hold and how large it is — so the decision to make a file worth attaching to a public thread is taken after seeing what goes in it. Run it again with `--write` to produce it.
Nothing is ever sent anywhere. The bundle is written here and stays here.
Usage: lemonfiber support [OPTIONS]
Options:
--json
Print machine-readable output
--write
Produce the bundle, having seen what it would hold
--dry-run
Say what would happen, and change nothing
--out <PATH>
Where to write it, instead of into this directory
--force
Take the stack from a run that claimed it and did not give it back
--logs <LINES>
How many log lines to take from each service
[default: 200]
--filenames
Include media filenames, which are replaced by default
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
--reveal <SETTING>
Show one setting as it is, named exactly as the bundle names it.
Repeatable, and refused without `--confirm` on the same run: a flag that publishes a credential is not one to honour because it turned up on a command line somebody copied.
--confirm
Confirm showing the settings named by `--reveal`
-h, --help
Print help (see a summary with '-h')
Serve the web interface, for as long as you leave it running.
Started when you ask for it and not before: nothing is installed, nothing keeps running afterwards, and stopping it leaves nothing behind. It listens on this machine only.
The connection is not encrypted, which it says when it starts, along with the whole address it was given and the token every request to it must carry. The token is minted for this run, printed once here, and kept nowhere else.
Usage: lemonfiber ui [OPTIONS]
Options:
--json
Print machine-readable output
--port <PORT>
The port to listen on. Without it, whichever one is free is used and the whole address is printed
--dry-run
Say what would happen, and change nothing
--no-browser
Do not ask this desktop to open a browser
--assets <PATH>
Serve the interface from this directory rather than from the binary.
No build carries a web app of its own yet, so this is the only way to serve one. A build asked without it says as much rather than answering with an empty page.
--force
Take the stack from a run that claimed it and did not give it back
--lan
Offer this to your network, rather than to this machine only.
Refused unless a password has been set. This surface can start, stop and reconfigure everything and reaches every password the system holds, so it is not offered to a network with nothing in front of it.
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
--set-password
Set the password this surface asks for, before it starts.
Asked for at the keyboard and never on this line: a password typed as an argument is a password in your shell's history and in the list of processes this machine is running.
-h, --help
Print help (see a summary with '-h')
Restore your configuration from a backup archive.
Verifies the archive and lists what it holds before anything is overwritten. A restore onto a different data root is refused until `--repoint` accepts moving it to this machine's.
Name an archive, or name nothing and be told which backups this machine has kept.
Usage: lemonfiber restore [OPTIONS] [ARCHIVE]
Arguments:
[ARCHIVE]
The archive to restore from
Options:
--json
Print machine-readable output
--repoint
Accept re-pointing to this machine's data root where it differs
--dry-run
Say what would happen, and change nothing
--force
Take the stack from a run that claimed it and did not give it back
--stack-dir <PATH>
Operate a stack directory of your own instead of the built-in one
-h, --help
Print help (see a summary with '-h')

This page lives in another repository Rendered from lemonfiber/lemonfiber at a2ac9bf, 2026-09-09. Read the source of this page