Skip to main content
Feeds are external package repositories that extend the set of packages available to the build system. They are the primary way to include community packages (LuCI, routing daemons, telephony tools, etc.) without storing them directly in the main OpenWrt tree.

Default feeds

The default feed list lives in feeds.conf.default at the root of the source tree:
feeds.conf.default
src-git packages https://git.openwrt.org/feed/packages.git
src-git luci https://git.openwrt.org/project/luci.git
src-git routing https://git.openwrt.org/feed/routing.git
src-git telephony https://git.openwrt.org/feed/telephony.git
src-git video https://github.com/openwrt/video.git
FeedContents
packagesCommunity-maintained port of hundreds of third-party packages
luciThe LuCI web interface and its modules
routingMesh and dynamic routing protocols (babel, batman-adv, bird, etc.)
telephonyVoIP and telephony packages (Asterisk, Kamailio, etc.)
videoDisplay server and client packages (Xorg, Wayland)

feeds.conf.default vs feeds.conf

The feeds script reads feeds.conf first. If that file does not exist, it falls back to feeds.conf.default.
feeds.conf          ← user override (not tracked by git)
feeds.conf.default  ← shipped defaults (tracked by git)
Create a feeds.conf to override or augment the defaults without modifying the tracked file:
cp feeds.conf.default feeds.conf
# Now edit feeds.conf as needed

Feed types

TypeDescription
src-gitClone from a Git repository. Optionally append a branch, tag, or commit SHA after the URL.
src-svnCheck out from a Subversion repository.
src-linkSymlink to a local directory. The directory contents are used directly — no copy is made.
src-cpyCopy a local directory into the feeds directory.

Feed commands

Update all feeds

Download or refresh the source for every feed defined in feeds.conf / feeds.conf.default:
./scripts/feeds update -a
To update a single feed by name:
./scripts/feeds update packages

Install packages from feeds

Create symlinks in package/feeds/ so the build system can see feed packages:
# Install all packages from all feeds
./scripts/feeds install -a

# Install a specific package
./scripts/feeds install <package-name>
You must run update before install. After install, the packages appear in make menuconfig under their respective feed categories.

Search feeds

./scripts/feeds search <name>
Searches package names and descriptions across all updated feeds.

List available packages

./scripts/feeds list
Prints a list of all packages available from the currently updated feeds.

Adding a custom feed

To add your own feed, append a line to feeds.conf (create it from feeds.conf.default if it does not exist):
feeds.conf
src-git myfeed https://github.com/example/my-openwrt-feed.git
Pin to a specific branch or tag by appending it after a semicolon:
feeds.conf
src-git myfeed https://github.com/example/my-openwrt-feed.git;main
After editing feeds.conf, update and install the new feed:
./scripts/feeds update myfeed
./scripts/feeds install -a -p myfeed
The packages from myfeed will now appear in make menuconfig.
Use src-link during active package development. Changes to your local package directory are visible to the build system without needing to re-run feeds update.

Build docs developers (and LLMs) love