whatisgithub

What is luci-app-run?

wukongdaily/luci-app-run — explained in plain English

Analysis updated 2026-05-18

35JavaScriptAudience · ops devopsComplexity · 2/5Setup · moderate

In one sentence

A small OpenWrt router plugin that lets you upload and run self-contained installer files from the web admin panel.

Mindmap

mindmap
  root((luci-app-run))
    What it does
      Upload run installers
      Executes in background
      Streams live output
    Tech stack
      JavaScript
      LuCI framework
      OpenWrt SDK
    Use cases
      Router package installs
      Browser based install flow
      Custom build compilation
    Audience
      Router admins
      OpenWrt users

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Upload and run a .run installer package directly from a router's web interface.

USE CASE 2

Watch installer output stream live in the browser instead of using SSH.

USE CASE 3

Compile the plugin from source using the OpenWrt SDK for a custom router build.

What is it built with?

JavaScriptLuCIOpenWrt SDK

How does it compare?

wukongdaily/luci-app-runtoolsai/gpt-relay-codex-plugin-quyanhfex/messenger-recall-tool
Stars353534
LanguageJavaScriptJavaScriptJavaScript
Setup difficultymoderatemoderatemoderate
Complexity2/52/53/5
Audienceops devopsdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires an OpenWrt router with LuCI, newer LuCI versions need an extra unlock step before installing packages.

So what is it?

This is a small plugin for OpenWrt routers that adds a web interface page for uploading and running .run files. OpenWrt is a Linux-based operating system commonly installed on home routers, and LuCI is its browser-based admin panel. A .run file is a self-contained installer archive created by a tool called makeself, which packages a script and its dependencies into a single file that can execute on a target system. The plugin's purpose is narrow: it accepts a .run file you upload through the router's web interface, saves it to a temporary folder, marks it as executable, runs it in the background, and streams the output back to the browser page so you can see what the installer is doing in real time. For larger files, it uses a dedicated upload path that avoids a slower chunked transfer method, getting closer to native HTTP upload speeds. The README is written in Chinese and is brief. It covers how to compile the plugin using the OpenWrt SDK by placing the source in the package feed and running the build command, and it gives two installation methods depending on which version of LuCI is running on the router. Newer versions of LuCI require an extra step to unlock package installation before uploading the package file. The project is lightweight by design and does not appear to do anything beyond the upload-and-run flow described above. The README does not cover security considerations around running arbitrary installer files on a router.

Copy-paste prompts

Prompt 1
Walk me through installing luci-app-run on my OpenWrt router.
Prompt 2
Explain how this plugin streams installer output back to the browser.
Prompt 3
Help me compile luci-app-run using the OpenWrt SDK package feed.
Prompt 4
What should I check before running an unknown .run file through this plugin?

Frequently asked questions

What is luci-app-run?

A small OpenWrt router plugin that lets you upload and run self-contained installer files from the web admin panel.

What language is luci-app-run written in?

Mainly JavaScript. The stack also includes JavaScript, LuCI, OpenWrt SDK.

How hard is luci-app-run to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is luci-app-run for?

Mainly ops devops.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.