# kenzok8/small for OpenWrt proxy package feeds

> kenzok8/small is an OpenWrt package source and collection of proxy-related plugins, including Passwall, HomeProxy, Mihomo, Sing-box, Nikki, MosDNS, and related utilities. It is aimed at OpenWrt users who want these packages available through a custom feed, but its integration instructions require package replacement and compatibility checks.

**kenzok8/small** —  homeprxoy mihomo sing-box dae passwall

- Repository: https://github.com/kenzok8/small
- Website: https://down.dllkids.xyz/openwrt-feed/
- Stars: 1,478 · Forks: 873
- Language: JavaScript
- License: Apache-2.0
- Published: 2026-10-16 · Updated: 2026-10-16 · Language: en
- Canonical page: https://hysenlabs.com/projects/kenzok8-small

## What kenzok8/small contributes to OpenWrt

kenzok8/small is a package repository for OpenWrt rather than a single proxy application. Its purpose is to collect commonly used proxy software and LuCI interfaces in one source. The README names ssr, passwall, homeproxy, mihomo, sing-box, dae, MosDNS, Nikki, and other components as part of the broader package set. Based on the repository layout, the collection also includes lower-level utilities such as redsocks2, dns2socks, dns2tcp, shadowsocks-rust, xray-core, v2ray-core, tcping, and geo-related packages.

The intended user is an OpenWrt operator assembling or modifying firmware packages, usually through the project package feed rather than by copying one desktop proxy binary onto a router. The README specifically describes a default bundle containing ssr, passwall, passwall2, homeproxy, and mihomo. It also presents the repository as a place where proxy packages are added from time to time. That makes the project useful when you want a broad set of OpenWrt integrations available from one source, but it does not establish that every package is suitable for every router or that all listed components are required for one deployment.

The repository does not document a general-purpose command-line interface for kenzok8/small itself. Its main visible interface is the OpenWrt package workflow. The separate small-package repository is described as a daily synchronized source for newer plugin downloads, while the GitHub releases page is labeled for daily plugin downloads. The project therefore has two update paths with different purposes: the package feed for build integration and the release or companion repository for downloadable artifacts.

## How the package feed fits into OpenWrt

The documented mechanism is source configuration followed by an OpenWrt feed update. The commands add kenzok8/small and kenzok8/openwrt-packages to feeds.conf.default, update all feeds, remove selected feed directories, replace the Go language package with a dedicated repository, install feed packages, and open the package configuration menu.

That sequence matters because it is not a normal `opkg install` of a single application. It changes the package sources used by an OpenWrt build environment. The README labels the feed commands as a one-command method to reduce plugin conflicts, and the deletion commands target both LuCI packages and several package directories. The replacement of `feeds/packages/lang/golang` with a clone from `kenzok8/golang` shows that this repository is intended for custom firmware preparation, not just a post-install download.

The data flow is therefore source selection, feed retrieval, selective package removal, Go package replacement, installation of feed packages, and configuration selection. The README does not explain how packages are built internally, how version conflicts are resolved, or whether `make menuconfig` is required for every target. It also does not provide a compatibility matrix. Engineers should treat the feed as an opinionated OpenWrt package source and inspect the resulting configuration rather than assuming that adding the feed is enough.

## Installing the default bundle on an OpenWrt device

The README gives a device-oriented installation method that does not require a firmware build. It says to upload the integration archive to the OpenWrt device's `tmp` directory and install the package files with `opkg`. The archive is described as containing ssr, passwall, passwall2, homeproxy, and mihomo.

After uploading the archive, run this command in the OpenWrt device shell:

```bash
opkg install *.ipk
```

The command expands the archive's `.ipk` files and asks OpenWrt's package manager to install them. The README does not document dependency ordering, failure recovery, or the exact archive filename. It also does not say whether the wildcard is evaluated in a particular shell. A failed install should not be diagnosed as a kenzok8/small feature, because the documentation gives no troubleshooting procedure for package conflicts or missing dependencies.

The README includes a separate instruction for people installing ssr and its dependencies independently. It says to remove the other plugin packages:

```bash
rm -rf {*passwall*,*homeproxy*,*mihomo*}
```

That command is destructive and should be treated as an explicit preparation step, not as a routine cleanup command. The README presents it as a way to avoid combining the default bundle with the same proxy-related packages. It does not explain whether brace expansion is available in every OpenWrt shell, so the documented form is the only form this review can verify.

## Building a feed-based OpenWrt package set

For firmware builders, the README provides the following documented workflow. Run it from the OpenWrt source tree:

```bash
sed -i '1i src-git kenzo https://github.com/kenzok8/openwrt-packages' feeds.conf.default
sed -i '2i src-git small https://github.com/kenzok8/small' feeds.conf.default
./scripts/feeds update -a && rm -rf feeds/luci/applications/luci-app-mosdns
rm -rf feeds/packages/net/{alist,adguardhome,mosdns,xray*,v2ray*,sing*,smartdns} feeds/packages/utils/v2dat feeds/packages/lang/golang
git clone https://github.com/kenzok8/golang -b 1.26 feeds/packages/lang/golang
./scripts/feeds install -a
make menuconfig
```

The first two commands prepend two package sources. The update command then refreshes feeds and removes the LuCI MosDNS package from the default feed. The next command removes selected networking packages, language packages, and `v2dat`. The repository clones Go 1.26 from `kenzok8/golang`, installs all feed packages, and opens the configuration menu.

The example is intentionally opinionated. It deletes packages with names matching `xray*`, `v2ray*`, and `sing*`, among others, before installing packages from the configured feeds. A builder who needs those upstream packages or relies on them in the base firmware needs to determine the consequences before copying the sequence. The README does not state whether the deletions are mandatory for every OpenWrt release, so they should not be generalized beyond the documented setup path.

## Update paths and maintenance boundaries

The repository is not archived, and its last push was on 2026-10-15. That supports describing the repository as recently updated, but it does not guarantee that every package inside it is compatible with the same OpenWrt version or target architecture. The listed releases include architecture-specific names such as `90-x86_64-25.12.0`, `90-x86_64-24.10.5`, and `90-aarch64_cortex-a53-25.12.0`, with publication dates in June 2026. The naming indicates that build outputs are not universally interchangeable, although the README does not provide release selection instructions.

The README also points users to `small-package` for people who prefer newer downloads and says that this repository is synchronized daily. The exact synchronization mechanism, update schedule in time zone, and package retention policy are not documented. Consequently, choosing the latest-looking release or the companion repository can change the dependency and upgrade surface without providing a documented migration path.

Upgrading is not described as a transactional operation. The installation examples remove packages and replace the Go feed, while the README does not explain rollback, configuration preservation, or how to reconcile an installed plugin with a newer bundle. An upgrade should therefore be planned as a package-set change, not as a simple replacement of one file. This limitation is especially relevant for routers where proxy plugins share libraries or where LuCI interfaces depend on packages removed by the feed commands.

## Where kenzok8/small is the wrong choice

The clearest wrong-tool case is a user who wants one managed proxy service or one client configuration without maintaining an OpenWrt feed. kenzok8/small does not present itself as a hosted service, a subscription manager, or a standalone command-line proxy. Its documented value is the collection and OpenWrt integration of multiple proxy-related packages.

There is also a conflict risk. The README's own commands remove Passwall, HomeProxy, Mihomo, Xray, V2Ray, Sing, MosDNS, SmartDNS, and other package directories in the feed preparation path. Those names are not incidental implementation details. They indicate that the project is designed for users willing to decide which package family owns each integration and to accept the replacement rules documented by the maintainer.

The repository layout contains many components, but it does not include enough information here to compare their features, resource use, or protocol coverage. An engineer should not select a specific package from the directory listing alone. A real alternative is to use OpenWrt's existing package feeds and install only the required plugin, which avoids the broad feed replacement sequence. Another alternative is to use a standalone proxy client on another system and leave the router package set unchanged. The difference is scope: kenzok8/small consolidates many OpenWrt proxy components, while the existing feed approach offers a narrower integration with fewer project-specific substitutions.

## Conclusion

Adopt kenzok8/small if you specifically want its OpenWrt proxy package source and can manage a custom build feed. Do not adopt it merely because you need a proxy client, or if your existing OpenWrt package set cannot tolerate the documented removals and replacements. Before committing to a build, verify your OpenWrt target, package dependencies, feed substitutions, and the exact plugin set you intend to install.

## FAQ

### What is kenzok8/small used for?

It is an OpenWrt package source for proxy-related software and LuCI plugins, including Passwall, HomeProxy, Mihomo, Sing-box, MosDNS, and other components. The README describes both an integration archive for `opkg install` and a custom feed for firmware builders.

### How do I install kenzok8/small packages on an OpenWrt device?

The README says to upload the integration archive to the OpenWrt device's `tmp` directory and run `opkg install *.ipk`. It does not document the archive filename, dependency order, or a rollback procedure.

### Does kenzok8/small replace existing OpenWrt proxy packages?

The documented feed workflow removes selected directories under `feeds/luci` and `feeds/packages`, including several proxy, DNS, and language packages. It also clones Go 1.26 from `kenzok8/golang`, so the workflow is an opinionated package-set change rather than an additive installation.

## Sources

- [kenzok8/small on GitHub](https://github.com/kenzok8/small)
- [License: Apache-2.0](https://github.com/kenzok8/small/blob/master/LICENSE)
- [Project website](https://down.dllkids.xyz/openwrt-feed/)
- [README](https://github.com/kenzok8/small/blob/master/README.md)
- [Releases](https://github.com/kenzok8/small/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/kenzok8-small
