The cross-platform successor to Web Server for Chrome, rebuilt by the original author.
The original Chrome App was used by 200,000+ people for local web development and file sharing. Google discontinued Chrome Apps, so 200 OK Web Server carries that simple workflow forward as:
- Chrome Extension — A familiar launcher for the installed server app
- Desktop App — Native app (Tauri) for Mac, Windows, and Linux
- Android / ChromeOS — Native app, published on Google Play
- iOS — Native SwiftUI/Swift app with foreground serving (source/device accepted; App Store release pending)
- ChromeOS Linux — A small Rust launcher/controller for Chromebooks without Google Play
Same author. Same mission. Modern architecture.
Looking for the original Chrome App source code? See the
legacybranch.
Feedback, suggestions, and support · Source code · MIT License
The Chrome extension, Android app, ChromeOS Linux component, and signed desktop
v0.1.5 have shipped. The server runtimes are intentionally not unified:
- Android source uses a native Kotlin HTTP/storage core behind its Compose UI;
- desktop
v0.1.5uses the standalone Rust HTTP core behind the Tauri/React control surface; - iOS source uses its own Swift HTTP/storage core behind SwiftUI and stops when the app backgrounds;
- the ChromeOS Linux controller reuses that Rust core; and
- the extension is a launcher/status surface, not the HTTP server.
Desktop main uses the standalone Rust core for HTTP, filesystem, and server
lifecycle work; its Tauri webview is only a static React control surface.
Signed desktop v0.1.5 includes the AppImage-first Linux installation,
native-host relaunch repair, Linux ARM64 packages, and package-aware signed
updates. The former Node/TypeScript CLI was never published to npm and has
been retired. GitHub release android-v0.2.1 contains the signed native Kotlin
APK and AAB with the physically validated ChromeOS LAN-address correction. The
maintainer reports v0.2.1 submitted to Play; Play may continue serving an
earlier artifact until review and rollout finish.
A standalone native iOS application is now implemented but not released. It uses SwiftUI and a Swift HTTP/storage implementation, reuses the product artwork rather than another platform's code, and stops when iOS backgrounds it. Its simulator/Release gates and same-Wi-Fi external HTTP campaign passed on the attached physical iPhone; App Store packaging and TestFlight are separate remaining work.
See the living product branding decision, desktop runtime decision, Android runtime decision, iOS runtime decision, ChromeOS extension launcher decision, ChromeOS Crostini launcher/controller decision, and active extension/ChromeOS closeout. The scoped Play-free Linux fallback is recorded in the Crostini tactical.
- Chrome Extension: 200 OK Web Server on the Chrome Web Store
- Android / ChromeOS: 200 OK on Google Play
- Desktop app: download the latest signed release. AppImage is recommended on Linux because it installs and updates without an administrator password; DEB and RPM remain secondary system packages. Linux packages are published for x86_64 and ARM64.
- ChromeOS without Google Play: follow the ChromeOS Linux setup guide.
- Static file serving with MIME type detection
- Auto-serves index.html for directories
- Directory listing with file sizes and dates
- ETag / If-None-Match (304) and byte-range support
- Path traversal protection
- Explicit start/stop lifecycle
- Package, TestFlight-test, review, and accept the exact App Store-delivered native iOS app
- Complete store review, rollout, and controlled delivery proof for the submitted Android and launcher-focused extension candidates
- Complete the final legacy Chrome App migration update
- Decide which supported product surfaces should add uploads, HTTPS, or authentication
- QR code for easy mobile access on LAN
- Live reload
- Multiple simultaneous servers
- Reverse proxy mode
See docs/vision.md for the full roadmap.
The repository contains three supported server cores and the platform applications that use or launch them:
packages/ui/ Shared React controls used by the desktop webview
extension/ Chrome Extension
desktop/ Tauri/React controls plus Rust application state
desktop/core/ Rust HTTP core and repository-only smoke executable
desktop/crostini/ ChromeOS Linux launcher/controller using the Rust core
android/ Compose app plus Kotlin HTTP/storage and lifecycle core
ios/ SwiftUI app plus Swift HTTP/storage and foreground lifecycle
Desktop and ChromeOS Linux use native Rust, Android uses native Kotlin, and
iOS uses native Swift. Their core feature contract is kept broadly compatible
through tests rather than shared runtime source. The Tauri webview remains for
configuration and control, while native Rust owns desktop sockets, filesystem
access, HTTP behavior, and server lifecycle. The small ok200-core executable
is retained only for repository development and smoke testing; it is not an
independently packaged CLI product. Authoritative runtime boundaries live in
docs/topics/desktop-runtime.md and
docs/topics/android-runtime.md.
The iOS source is a separate native SwiftUI/Swift implementation under ios/;
its development candidate is physically accepted but no App Store release
exists yet. See
docs/topics/ios-runtime.md and
docs/tactical/017-ios-store-readiness.md.
If you were a user of the original Web Server for Chrome:
- The new extension is published here: Chrome Web Store listing
- The Android / ChromeOS app is published here: Google Play listing
- The extension launches the server application; it does not contain the server itself.
- Feature parity is a direction, not a claim that every legacy option is already available.
Migration status and the final legacy update plan are in
docs/topics/legacy-app-migration.md.
pnpm install
pnpm build # build frontend applications and shared UI
pnpm test # run tests
pnpm typecheck # type check
pnpm lint # lint with BiomeFor the Rust-native desktop workspace and its internal smoke executable:
cd desktop
cargo run -p ok200-core -- --root .. --port 0
cargo fmt --all -- --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspaceFor the native iOS application:
ios/scripts/check.sh # simulator unit/UI tests and Release hygiene
ios/scripts/device-smoke.sh # signed phone install, LAN fetch, background stopMIT
