![]()
OneBox (万宝盒)
English | 简体中文
A free AI agent & toolbox for Android: say what you need and the built-in agent drives 90+ in-app tools to get it done — plus image & document tools, productivity and daily utilities.
Screenshots



Download
- International: Google Play · Official site
- 中国: 万宝盒官网 · 小米 / 应用宝 / OPPO / vivo / 华为应用商店搜索「万宝盒」
AI Assistant: More Than Just Feature Count
Plenty of toolbox apps are long on features. OneBox's built-in AI assistant saves you from hunting for tools and memorizing steps — just say what you want:
"Turn these images into a PDF." "Log this bill screenshot into my ledger." "Make me a to-do list." "Look up today's stock prices online."
It understands, acts, and reports back — in one flow.
- Bounded by its own permissions: everything the agent does stays inside the app's own Android sandbox and declared permission set — it never touches contacts, SMS or call logs; local tools run entirely on-device, and only the conversation with your chosen model goes online.
- An agent that drives the tools: the AI agent can invoke 90+ in-app local tools (PDF processing, image editing, file management, bookkeeping…), chaining multi-step tasks across tools — executed locally with per-tool timeouts and iteration limits.
- Picture-in-picture robot, no more waiting around: long agent task? Just leave the app — with an active AI session it drops into system picture-in-picture, where the mini-window robot keeps you posted on progress and one tap brings you back to the result. Native PiP, zero permissions required.
- One chat, many models: talk to multiple mainstream LLMs from a single entry, with custom AI engines and prompt management.
- Bring your own key — use it for free: drop in any OpenAI-compatible API key (including free tiers like Gemini or OpenRouter's free models) and the full assistant + agent is yours at zero cost. Custom engines, endpoints and tokens are fully open in the Google Play build and in builds from this repo.
- Transparent by source: every line is public — how data is processed locally and what never leaves the device is something you can verify, not a promise you have to trust.
Features
OneBox ships 104 feature modules. Local tools run entirely on-device; only the conversation with your chosen AI model goes online. The tables below list every module — names refer to the feature/* directories in this repo.
AI & Assistant
| Module | Feature | Description |
|---|---|---|
feature/ai |
AI Chat & Agent | Multi-model chat, dual-model duels, prompt execution, and an agent that invokes in-app tools, with token stats |
feature/ai-image |
AI Image | Text-to-image generation, with share / copy / edit |
feature/ai-detect |
AI Detector | Check whether a text or an image is AI-generated |
feature/dsh-client |
DSH Client | Drive a DeepSeek Harness agent on your computer — scan-to-pair, end-to-end encrypted, LAN or cloud relay (computer side: onebox-dsh-bridge) |
feature/visual-automation |
Visual Automation | Feed screenshots to a multimodal model for screenshot-based UI automation |
Image Viewing & Editing
| Module | Feature | Description |
|---|---|---|
feature/image-viewer |
Image Viewer | Immersive viewer with swipe browsing, double-tap / pinch zoom (up to 5×), online image download |
feature/image-preview |
Image Preview | Preview and manage images; the entry point to edit / crop / filter flows |
feature/single-edit |
Single Edit | All-in-one editor: crop, filters, draw, curves, resize, format & quality, before/after compare |
feature/draw |
Draw | Free-form canvas: pen / neon / highlighter / blur / pixelate / text / stickers / healing, shapes and flood fill |
feature/markup-layers |
Layers | Layer-based creation: add / order / merge / blend / opacity, brushes, text, shapes, export settings |
feature/crop |
Crop | Crop with rotation, free-corner crop, shaped outlines and aspect ratios |
feature/image-stitch |
Image Stitch | Horizontal / vertical / grid stitching with alignment, spacing and fading edges |
feature/image-splitting |
Image Split | Split one image into a rows × columns grid of tiles |
feature/image-stacking |
Image Stacking | Overlay multiple images into a single composite |
feature/image-cutting |
Image Cut | Precise cut by horizontal / vertical start–end percentages, with invert |
feature/compare |
Compare | Side-by-side or overlay diff of two images, slider and pixel-level highlight |
feature/load-net-image |
Net Image Loader | Paste a URL to parse, preview and download images from the page |
feature/pick-color |
Color Picker | Tap / drag to pick pixel colors, with pan and zoom modes |
feature/collage-maker |
Collage Maker | Collages of up to 10 photos with templates, spacing, rounded corners, backgrounds |
feature/text-card |
Text Cards | Turn quotes into beautiful cards with paper backgrounds, layers and AI illustrations |
Filters & Effects
| Module | Feature | Description |
|---|---|---|
feature/filters |
Filters | 100+ filters (blur, color, artistic, edge, warp) with mask-based partial application |
feature/gradient-maker |
Gradient Maker | Pure / overlay / mesh gradients with configurable color stops |
feature/mesh-gradients |
Mesh Gradients | Browse and download mesh-gradient packs, jump into the editor |
feature/noise-generation |
Noise Textures | Procedural noise via FastNoiseLite (OpenSimplex2 / Perlin / Value…) |
feature/ascii-art |
ASCII Art | Convert images into character-based text art |
feature/color-tools |
Color Tools | Color info (HEX / RGB / HSL), harmonies, shades / gradients, histogram analysis |
feature/palette-tools |
Palette Extract | Extract palettes from images, Material You style, custom palette export |
Conversion & Compression
| Module | Feature | Description |
|---|---|---|
feature/format-conversion |
Format Convert | JPEG / PNG / WebP conversion with quality control, EXIF retention, batch processing |
feature/resize-convert |
Resize & Convert | Resize + convert in one pass: width / height / preset / scale modes, batch |
feature/weight-resize |
Compress by Size | Compress to a target file size, with before/after size comparison |
feature/limits-resize |
Limit Resize | Scale within max width / height; skip / re-encode / scale modes |
feature/gif-tools |
GIF Tools | Multi-image GIFs with frame rate, repeat count, size and per-frame preview |
feature/apng-tools |
APNG Tools | Multi-image APNGs with frame delay and repeat count |
feature/webp-tools |
WebP Tools | Multi-image animated WebP with frame delay and repeat count |
feature/svg-maker |
SVG Maker | Convert bitmaps into SVG vector graphics |
feature/zip |
ZIP Archive | Pack images into a ZIP archive |
Metadata & Encoding
| Module | Feature | Description |
|---|---|---|
feature/edit-exif |
Edit EXIF | View and modify camera model, capture time, GPS, copyright… |
feature/delete-exif |
Delete EXIF | Batch-strip EXIF for privacy, or add new EXIF data |
feature/base64-tools |
Base64 Tools | Two-way image ↔ Base64 conversion |
feature/checksum-tools |
Checksum Tools | Compute and compare file / text hashes with multiple algorithms |
Documents & Text
| Module | Feature | Description |
|---|---|---|
feature/pdf-tools |
PDF Toolbox | Preview, image → PDF, PDF → image, merge, split, compress, rotate, page management |
feature/ocr-document |
OCR | OCR recognition and format conversion with task tracking, preview and export |
feature/document-scanner |
Document Scanner | Scan paper documents into images / PDF |
feature/markdown-edit |
Markdown Editor | WYSIWYG Markdown editing, export to PDF |
feature/code-editor |
Code Editor | Syntax highlighting, file I/O and history |
Watermark & ID Photo
| Module | Feature | Description |
|---|---|---|
feature/watermarking |
Watermark | Text / image / steganographic / stamp watermarks with position, rotation, opacity, tiling |
feature/camera-watermark |
Camera Watermark | Stamp photos with time / location / device watermarks |
feature/id-photo |
ID Photo | Standard ID-photo sizes, background replacement, batch export |
feature/wallpapers-export |
Wallpaper Export | Read and save the system and lock-screen wallpapers |
Scanning & QR
| Module | Feature | Description |
|---|---|---|
feature/scan-qr-code |
QR Tools | Scan (camera / image) and generate QR & barcodes: text, URL, WiFi, contacts… |
Measurement & Utilities
| Module | Feature | Description |
|---|---|---|
feature/unit-converter |
Unit Converter | Length, weight, temperature, area, volume, speed, time and more |
feature/compass |
Compass | Compass & luopan dials with bearings, magnetic declination and calibration hints |
feature/measurement |
Ruler | On-screen ruler and protractor, cm / inch |
feature/altitude |
Altitude | GPS altitude with history |
feature/speed-test |
Speed Test | Download / upload speed with a gauge animation |
feature/calendar |
Calendar | Calendar with Chinese almanac, bazi chart and lunar conversion |
feature/schedule |
Schedule | Events with system-calendar sync and reminders |
feature/teleprompter |
Teleprompter | Script editing + fullscreen playback with speed / font / color controls |
feature/dead-pixel-test |
Dead Pixel Test | Fullscreen solid colors with color switching and grid overlay |
feature/marquee |
Marquee | Fullscreen scrolling text, LED style and subtitle modes |
feature/audio-cover-extractor |
Cover Extractor | Extract album covers from audio files |
Security & Encryption
| Module | Feature | Description |
|---|---|---|
feature/cipher |
Image Cipher | Encrypt / decrypt images with passwords |
feature/password-vault |
Password Vault | Local encrypted account & password storage with categories and search |
Life & Productivity
| Module | Feature | Description |
|---|---|---|
feature/bookkeeping |
Bookkeeping | Income / expense tracking with charts — the AI can log bills for you |
feature/marktodo |
To-do | Topic-based tasks with tags, priorities, due dates and filters |
feature/habit-tracker |
Habit Tracker | Daily check-ins with reminders, streaks and completion stats |
feature/household-items |
Item Tracker | Track where things are stored, expiry dates and notes; AI can log & query |
feature/period |
Period Tracker | Log periods, flow, symptoms and mood; predicts the next cycle |
feature/record-center |
Health Records | 12 metric types (blood pressure, weight, glucose…), trends and AI insights |
feature/loan-calculator |
Loan Calculator | Equal-payment / equal-principal loans: monthly payment, total interest, schedule |
feature/lifetime |
Lifetime | A timeline of life events and milestones |
feature/decision-wheel |
Decision Wheel | Custom random spinner to help you choose |
feature/blessing-wall |
Blessing Wall | Greeting cards with background music and sharing |
feature/poem |
Chinese Poetry | Random poems, keyword search, AI interpretation, history & favorites |
feature/iching-divination |
I Ching | Shake to cast a hexagram, with changing lines and AI interpretation |
Games
| Module | Feature | Description |
|---|---|---|
feature/game2048 |
2048 | The classic sliding-tile merge game |
feature/xiangqi |
Chinese Chess | Vs AI, online play, game library, endgame analysis |
feature/gomoku |
Gomoku | 15×15 board, vs LLM, AI battles, game library, review |
feature/chess |
Chess | Full rules (castling / en passant / promotion), vs LLM, game library, review |
feature/minesweeper |
Minesweeper | Multiple difficulties, timer, flags |
feature/sudoku |
Sudoku | Three difficulties, hints, undo, timer, stats |
feature/survive30s |
Survive 30s | Dodge obstacles for 30 seconds |
feature/dice-roller |
Dice Roller | D4 / D6 / D8 / D10 / D12 / D20 dice |
Content & Community
| Module | Feature | Description |
|---|---|---|
feature/online |
Discover | Content square aggregating recommended apps, notes and mini-programs |
feature/blog |
Blog & Feedback | Read articles and send feedback |
feature/profile |
Profile | VIP level, data backup & restore, about |
feature/notification |
Notifications | Message center with unread badges |
feature/ad-watch |
Watch & Earn | Watch rewarded ads to earn points, with a daily cap |
Files & Transfer
| Module | Feature | Description |
|---|---|---|
feature/file-browser |
File Browser | Directory navigation, search, sort, multi-select operations |
feature/file-transfer |
File Transfer | LAN file transfer with QR pairing and encryption |
feature/cloud-storage |
Cloud Storage | Browse, upload, download and delete cloud files |
feature/media-picker |
Media Picker | Image / video picking shared by the other tools |
App Shell & System
| Module | Feature | Description |
|---|---|---|
feature/app |
App Shell | Entry navigation with adaptive layout: drawer + bottom bar in portrait, navigation rail in landscape |
feature/settings |
Settings | AI engines, themes, display, TTS, system prompts and more |
feature/common |
Common | Shared UI base, data sync and category management |
feature/search |
Global Search | Search features, content and messages, with quick navigation |
feature/quick-tiles |
Quick Tiles | Quick-settings tiles: screenshot, color picker, scan… |
feature/webview |
Web Browser | Built-in browser with tabs, bookmarks and history |
feature/login |
Sign In | Auth flows and user agreement |
feature/wechat |
WeChat Integration | WeChat SDK sign-in and payment callbacks |
feature/demo |
Demo | Developer component showcase grid |
feature/libraries-info |
Open-source Licenses | License list of all third-party libraries |
feature/library-details |
License Details | Per-library license details |
feature/boardgame |
Board Game UI Kit | Shared board-game UI scaffolding reused by gomoku / chess |
Tech Stack
- UI: Jetpack Compose, Material 3
- Navigation / components: Decompose (
StackNavigation,childStack, retained components) - DI: Hilt
- Code generation: KSP
- Build conventions: custom Gradle convention plugins in
build-logic/convention - Persistence: SQLite / Room (
AppDatabase), MMKV (per-module) - Network & images: Retrofit / OkHttp, Coil
Repository Structure
| Path | Description |
|---|---|
app/ |
Application shell and packaging entry; AppActivity.kt is the main Activity |
feature/app/ |
Top-level shell, root navigation, global CompositionLocals, screen wiring, adaptive layout |
feature/* |
Business / tool feature modules |
feature/ai/ |
AI chat, agent, tool-calling chain, AI image features |
feature/common/ |
Shared business logic, AI engine catalog/sync |
feature/settings/ |
Settings, themes, AI engine & working-model configuration |
core/* |
Foundation layers: UI, domain, data, database, theme, settings, etc. |
libs/* |
In-project reusable libraries |
build-logic/convention/ |
Custom Gradle convention plugins |
web/ |
Web frontend source of the file-transfer module (esbuild project) |
fastlane/ |
Google Play listing copy & assets (fastlane supply format) |
Architecture Entry Points
Paths beginning with com.t8rin.* are inherited from upstream ImageToolbox and left unchanged on purpose, so the diff against upstream stays reviewable. Everything written for this project lives under com.wanbaohe.* / com.shifenmiao.*.
- App entry:
app/src/main/java/com/shifenmiao/app/AppActivity.kt - Runtime navigation root:
feature/app/src/main/java/com/t8rin/imagetoolbox/feature/root/presentation/screenLogic/RootComponent.kt - Route definitions:
core/ui/src/main/kotlin/com/t8rin/imagetoolbox/core/ui/utils/navigation/Screen.kt - Child factory wiring:
feature/app/.../navigation/ChildProvider.kt - Child composable wrappers:
feature/app/.../navigation/NavigationChild.kt - Top-level shell selector:
feature/app/src/main/java/com/wanbaohe/app/screen/ScreenSelector.kt - Adaptive navigation layout:
feature/app/src/main/java/com/wanbaohe/app/navigation/AdaptiveNavigationLayout.kt
Building from Source
Requirements
- Use the bundled Gradle Wrapper 9.7.0
- JDK 17 (build-logic and CI target it)
- Android targets: Compile SDK 37 / Target SDK 37 / Min SDK 24
- Toolchain: Kotlin 2.4.0 / AGP 9.3.1
- When in doubt,
gradle/libs.versions.tomlandgradle/wrapper/gradle-wrapper.propertiesare the source of truth
Clone
The repository carries a lot of binary assets, so a full clone is large. For building, a shallow clone is enough:
git clone --depth=1 https://github.com/wangzhishou/OneBox.git
Common Commands
./gradlew :app:assembleGoogleArm64Debug # single-variant debug APK (google = default channel)
./gradlew tasks --group=assemble # list all assemble tasks
./gradlew :app:tasks
Variants
The app module uses two flavor dimensions:
app:xiaomi/yyb/oppo/vivo/huawei/onebox/google/foss(fossis the fully-FOSS build: no GMS, Firebase, WeChat or Alipay SDKs; this is the variant CI verifies)abi:arm64(64-bit only)
Build and verify with the google (overseas / Play) flavor by default; pick a domestic flavor only when it is actually needed. Task names combine the two dimensions, e.g.:
:app:assembleGoogleArm64Debug:app:assembleGoogleArm64Release:app:assembleHuaweiArm64Debug
See run.md for more command examples.
Signing & API Keys (Optional)
The project syncs and builds without any key files:
- release signing falls back to placeholder values (not for production use)
- debug builds fall back to AGP's default debug signing
- third-party service keys (AI providers, Google Places, etc.) are empty and the corresponding features stay disabled
To customize, copy the root templates and fill in real values:
keystore.properties.template→keystore.properties: release signing + service keyskeystore-google.properties.template→keystore-google.properties: dedicated signing for the google flavor
Both target files are git-ignored; never commit real values.
Multi-channel Release Builds
build_release.sh builds 7 channels × 1 ABI (arm64, 64-bit only) = 7 release APKs into release/ with a release/manifest.txt summary. Examples:
./build_release.sh # all 7
./build_release.sh --channel xiaomi huawei # selected channels
./build_release.sh --abi arm64 # 64-bit only
./build_release.sh --no-offline --clean # fetch deps online + clean first
./build_release.sh --skip-build # re-collect artifacts only
A real keystore.properties is required for release packaging (the script exits early without it).
CI Releases
.github/workflows/android.yml defines the tag-based release pipeline: Ubuntu runner, JDK 17, assembleRelease, then APK signing and release upload.
Update reminders & domestic distribution
The "Open Source Project" row under Profile → About shows the latest release (plus a tab badge on Profile when a newer version exists). A startup dialog can be enabled from the remote config:
"appUpdate": { "dialogEnabled": true, "dialogForVersionBelow": 150, "dialogCooldownHours": 24 }
The version source depends on the flavor: overseas (google / foss) reads GitHub Releases, the six domestic channels read the GitCode OpenAPI. GitCode mirrors only branches/tags/commits — not releases — so domestic builds need an extra publish step:
export GITCODE_TOKEN=xxx # https://gitcode.com/setting/token-classic
git push gitcode --tags # the tag must exist: it is used as target_commitish
./scripts/publish_gitcode_release.py --tag 1.4.0 --dir release --abi arm64
Tag pushes do this automatically: CI additionally builds the six domestic channels (arm64, appended via
matrix.include) and publishes them to GitCode — requires the GITCODE_TOKEN secret and the tag being
pushed to GitCode (the script uses the tag as target_commitish). The GitHub Release keeps the overseas
packages only. The GitCode repository has to be public, otherwise the anonymous API returns 403.
AI / Agent Capabilities
AI features are composed from several modules:
feature/ai/: AI chat, agent loop, tool-call execution, interactive tool bridgingfeature/common/: AI engine catalog, engine sync, shared managersfeature/settings/: AI engine, model and working-mode configuration UI
The tool-calling chain is built on ToolCallTaskManager, AgentLoopExecutor and AppDatabase.
Security & Third-party Services
- No production secrets in this repo: payment (WeChat Pay / Alipay), AI provider and Google Places keys are injected via the optional
keystore.propertiesor kept server-side. - Backend domains and guest tokens are not in source: API base URLs and read-only guest tokens are injected from
keystore.propertiesat build time, so builds from this repository never contact the production servers and hosted content stays empty. To enable connected features, point the app to your own backend (core/r/**/UrlConstantsFlavor.kt). - WeChat appId / WeCom corpId are public identifiers; the WeChat platform verifies callers by package name + signature, so third-party builds cannot impersonate the official app.
- Forks & redistribution: change the
applicationId(com.shifenmiao.appis taken), replaceapp/src/google/assets/google-services.jsonwith your own Firebase configuration, and point the app to your own backend (API domains incore/r/**/UrlConstantsFlavor.kt).
Documentation
run.md: build / install / lint commandsdocs/modules.md: module catalog (Chinese)CONTRIBUTING.md: setup, conventions, and what will not be mergedSECURITY.md: how to report a vulnerability privately, and what is deliberately publicdocs/database-migrations.en.md: database migration rules (中文)
Support the Project
OneBox is built and maintained by a one-person company (OPC), with a limited budget for servers and AI resources. If it helps you:
- In-app donation: in the app, go to Profile → Buy Me a Coffee (points-based)
- Partnership & sponsorship: AI providers, cloud vendors and partners willing to sponsor tokens or resources are very welcome — reach us at [email protected]
Every bit of support turns directly into better features and a more stable service.
Community & Feedback
The same links are in the app under Profile → Join Community (overseas builds show Discord / X / YouTube, domestic builds show the QQ and WeChat groups):
- Discord: discord.gg/7j4hEBYGWv — chat, show & tell, early builds
- X (Twitter): @OneBoxAndroid
- YouTube: @OneBoxAndroid — intro videos and feature demos
- Bug reports & feature requests: GitHub Issues
- Questions, ideas, show & tell: GitHub Discussions
- Security problems: report them privately, see SECURITY.md — please do not open a public issue
- 中文用户:QQ 群 / 微信群见中文版 README
Contributors Wanted
OneBox is a one-person project and its surface area is now much larger than one person can cover. Help here is genuinely welcome, not a polite formality.
The most useful contributions right now, roughly in order:
- Translations. The app and the Play listing ship in 13 locales. If your language reads wrong, only you can tell us. See
fastlane/metadata/android//. - Device testing. Confirm a build actually works on your OEM ROM, and report what broke.
- The open
good first issueandhelp wantedlist — start here. - The agent's tool choices. 90+ tools are exposed to the agent; telling us which tool it picks badly, and what it should have picked instead, is real feedback.
Start with CONTRIBUTING.md. No keystores, API keys or backend access are needed to build.
License
Apache-2.0, see LICENSE. The project is a fork of ImageToolbox (T8RIN, Apache-2.0): the image-processing core deliberately stays close to upstream so the diff stays reviewable, and upstream copyright notices are preserved in the files they came from.
Feature Gallery
One box, everything AI. Fully open source, free to use, and your data stays on-device — 18 cards to see what OneBox can do:


















