Official plugin repository for WebApps — a multi-container Android browser.
Plugins let you customize WebApps' appearance (theme colors, UI tweaks) without modifying the app itself. This repo hosts the plugin catalog and files that WebApps downloads directly inside the app.
- You write a plugin source file (
.wp, plain text TOML) insideplugins-src/<type>/. - A GitHub Actions workflow automatically:
- Packages your source into a distributable
.wpfile (a ZIP archive containingmanifest.toml) insideplugins/. - Updates
index.toml, the catalog WebApps reads to display available plugins.
- Packages your source into a distributable
- WebApps' in-app Plugin Browser (Settings → Plugins) fetches
index.toml, lets users download and apply plugins.
You never need to run any script manually or hand-edit index.toml — just add your source file and push.
WebApps-plugin/
├── index.toml # Auto-generated catalog (id + name only). Do not edit manually.
├── plugin-ic/ # Plugin icons, add manually: .png
├── plugins/ # Auto-generated distributable .wp (zip) files.
├── plugins-src/ # Where you add new plugins.
Note on
.wpfiles: files insideplugins-src/are plain TOML text (source). Files insideplugins/are ZIP archives with the same.wpextension (distributable format WebApps actually downloads). They share a name and extension but are different formats — don't confuse them.
- Pick a plugin type. Currently supported:
theme. - Create a file at
plugins-src/<type>/<your-plugin-id>.wp(plain text, TOML format). - Fill in the required fields (see Theme Plugin Format below).
- Commit and push to
main. The workflow runs automatically and builds everything for you.
Your plugin will appear in the app's Plugin Browser within a few minutes of the workflow completing.
Example: plugins-src/theme/catppuccin-mocha.wp
name = "Catppuccin Mocha"
description = "Soothing pastel dark theme"
author = "hastagaming"
version = "1.0.0"
previewColorHex = "#CBA6F7"
colorPrimary = "#CBA6F7"
colorBackground = "#1E1E2E"
colorSurface = "#313244"
colorSurfaceVariant = "#45475A"
colorOnSurface = "#CDD6F4"
colorOnPrimary = "#1E1E2E"
colorError = "#F38BA8"
uiCornerRadiusDp = 12
uiGridMinTileWidthDp = 100| Field | Required | Description |
|---|---|---|
| name | Yes | Display name shown in the Plugin Browser |
| description | Yes | Short one-line description |
| author | Yes | Your name or GitHub username |
| version | Yes | Semantic version, e.g. 1.0.0 |
| previewColorHex | Yes | Hex color shown as a preview swatch before download |
| colorPrimary | Yes | Primary accent color (buttons, highlights) |
| colorBackground | Yes | App background color |
| colorSurface | Yes | Card/surface background color |
| colorSurfaceVariant | Yes | Secondary surface color (e.g. dividers, disabled states) |
| colorOnSurface | Yes | Text/icon color on top of surfaces |
| colorOnPrimary | Yes | Text/icon color on top of primary-colored elements |
| colorError | Yes | Error state color |
| uiCornerRadiusDp | No (default 12) | Corner radius for cards and buttons, in dp |
| uiGridMinTileWidthDp | No (default 100) | Minimum width for container grid tiles, in dp |
All color fields must be valid hex codes (#RRGGBB).
- The plugin ID is derived from the filename (without .wp), e.g. - catppuccin-mocha.wp → id catppuccin-mocha.
- Use lowercase letters, numbers, and hyphens only.
- IDs must be unique across the entire repository, regardless of type folder.
Pull requests are welcome! To submit a plugin:
- Fork this repository.
- Add your .wp source file under the appropriate plugins-src// folder.
- Open a pull request. Once merged into main, the workflow will build and publish it automatically.
Please make sure your plugin:
- Has readable contrast between colorOnSurface/colorOnPrimary and their respective backgrounds.
- Uses a unique, descriptive plugin ID.
- Includes accurate author attribution.
You may optionally add an icon at plugin-ic/<plugin-id>.svg. If provided, it must be an SVG file with colorful content (not grayscale/monochrome) — this keeps the Plugin Browser visually consistent and easy to scan.
If no icon is provided, WebApps automatically shows a colored placeholder derived from the plugin's ID, so an icon is never strictly required.
Example minimal colorful SVG (128x128, solid color background with a simple shape):
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" viewBox="0 0 128 128">
<rect width="128" height="128" rx="24" fill="#7C4DFF"/>
<circle cx="64" cy="64" r="36" fill="#E8EAFF"/>
</svg>Plugins in this repository are contributed under MIT License unless otherwise noted by the plugin author. By submitting a plugin, you agree to license it under these terms.