ALFRED(8)
π ALFRED(8) π
okay bestie, sit down, hydrate, because we're doing section 8 of the manual and this one is literally iconic. it's the page for alfred, aka the Almighty Lightweight Fact Remote Exchange Daemon β¨ (yes the name is that extra, yes we love her for it).
πΈ NAME πΈ
alfred β Almighty Lightweight Fact Remote Exchange Daemon π§
π SYNOPSIS π
alfred [options]
that's it. that's the whole vibe. one binary, all the flags π
π¦ DESCRIPTION π¦
so alfred is a user space daemon that distributes arbitrary local information over the mesh/network in a decentralized fashion. and when we say arbitrary we mean arbitrary β the data can be anything that seems useful. originally she was designed to replace the batman-adv visualization (vis), but fr fr you can distribute hostnames, phone books, administration information, DNS information, the local weather forecast β¦ the limit is genuinely your imagination π«Ά
alfred runs as a daemon in the background of the system. a user may insert information by using the alfred binary on the command line, or use special programs to communicate with alfred (done via unix sockets). then alfred takes care of distributing the local information to other alfred servers on other nodes. the way she does that? via IPv6 link-local multicast, and it does not require any configuration. no cap. a user can request data from alfred and will receive the information available from all alfred servers in the network. it's giving effortless π₯
β¨ OPTIONS β¨
-v,--versionβ print the version π-h,--helpβ display a brief help message π₯Ί-u,--unix-pathpath β path to unix socket used for client-server communication π
π CLIENT OPTIONS π
-s,--set-datadata-type β sets new data to distribute from stdin for the supplied data type (0-255). π
heads up bestie:0 - 63are reserved (please send an e-mail to the authors if you want to register a datatype), and can not be used on the commandline. also, information must be periodically written again toalfred, otherwise it will timeout andalfredwill forget about it (after 10 minutes). so likeβ¦ keep feeding her or she moves on π
-r,--requestdata-type β collect data from the network and print on stdout π¬-d,--verboseβ show extra information in the data output π-d,--forceβ start server even when batman-adv or interface(s) are not yet available. πͺ (and yes, the page literally lists-dtwice with two different long names β i'm not making this up, i'm just the messenger π« )-V,--req-versionversion β specify the data version set for-s. skipping the parameter entirely has the same effect as setting the parameter to0(-V 0). π·οΈ-M,--modeswitchmode β switch modes, queen:primaryβ switch daemon to mode primary πsecondaryβ switch daemon to mode secondary π£
-I,--change-interfaceinterface β change thealfredserver to use the new interface(s) π-B,--change-bat-ifaceinterface β change thealfredserver to use the new batman-adv interface π¦-S,--server-statusβ request server status information such as mode & interfaces π-E,--event-monitorβ startalfredevent monitor connecting to thealfredserver and reporting update events π‘
π SERVER OPTIONS π
-i,--interfaceiface β specify the interface (or comma separated list of interfaces) to listen on. use'none'to disable interface operations. π§-bbatmanif β specify the batman-adv interface configured on the system (default:bat0). use'none'to disable the batman-adv based best server selection. π¦
the interface option -i is optional. if interface 'none' is specified, the alfred daemon will not communicate with other alfred instances on the network unless the interface list is modified at runtime via the unix socket. the -b option is optional, and only needed if you run alfred on a batman-adv interface not called bat0, or if you don't use batman-adv at all (use '-b none'). in this case, alfred will still work but will not be able to find the best next primary server based on metrics. π
-m,--primaryβ start up the daemon in primary mode, which accepts data from secondaries and syncs it with other primaries. π
okay so here's the lore, bestie: alfred servers may either run as primary or secondary in the network. primaries will announce their status via broadcast, so that secondaries can find them. secondaries will then send their data to their nearest primary (based on TQ). primaries will exchange their data (which they have received from secondaries or got on their own) with other primaries. by using primaries and secondaries, overhead can be reduced while still keeping redundancy (by having multiple primaries). obviously, at least one primary must be present in the network to let any data exchange happen. also having all nodes in primary mode is possible (for maximum decentrality and overhead). β¨
-c,--update-commandcommand β specify command to execute on data change. it will be called with data-type list as arguments. π-p,--sync-periodperiod β specifyalfredsynchronization period, in seconds. if not specified, the defaultALFRED_INTERVALsetting of10seconds will be used. fractional seconds are supported. β±οΈ-4group-address β specify the IPv4 multicast group address and enable IPv4 data-sharing (disabling IPv6 communication). this option is required on systems that do not support IPv6 addressing. π
π¬ EXAMPLES π¬
start an alfred server listening on bridge br0 (assuming that this bridge includes the batman interface bat0):
alfred -i br0 -m
send data to the alfred server and store it under id 65:
cat /etc/hostname | alfred -s 65
retrieve all data stored as id 65 from all connected alfred servers:
alfred -r 65
{ "fe:f1:00:00:01:01", "OpenWRT-node-1\x0a" },
{ "fe:f1:00:00:02:01", "OpenWRT-node-2\x0a" },
{ "fe:f1:00:00:03:01", "OpenWRT-node-3\x0a" },
π SEE ALSO π
batadv-vis(8), batctl(8) β go read those next, bestie π
π AUTHOR π
alfred was written by Simon Wunderlich <sw@simonwunderlich.de> and Sven Eckelmann <sven@open-mesh.com>. π«Ά
this manual page was written by Simon Wunderlich <sw@simonwunderlich.de> and Sven Eckelmann <sven@open-mesh.com>. π
and that's the whole page, periodt π this Linux page is dated Sep 21, 2013 β vintage, lowkey a classic, and still serving β¨ go forth and distribute your facts, you're the main character of the mesh now πππ
π¦ where this page comes from
- debian bookworm: alfred 2023.0-1 Β· GPL-2.0-only
- debian trixie: alfred 2025.0-2 Β· GPL-2.0-only
- nixos 26.05: alfred 2026.3
- nixpkgs unstable: alfred 2026.3
- ubuntu noble: alfred 2024.0-1build2 Β· GPL-2.0-only
- ubuntu questing: alfred 2025.0-2
- ubuntu resolute: alfred 2025.5-1 Β· GPL-2.0-only
- ubuntu stonking: alfred 2026.2-1 Β· GPL-2.0-only
- π the page's license: GPL-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms