DeepSeek Harness Remote
DeepSeek Harness Remote 可将手机或另一台电脑与你运行 DeepSeek Harness 的电脑安全连接,随时随地继续你的工作,方便随时查看进度并继续工作。
AI 翻译
尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
A fast, no-signup website of everyday tools for students, parents, freelancers and everyone else: 24 tools across image, PDF, text, calculators, generators and media. Files are processed in the browser, so they are never uploaded or stored.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗| 🌟 Product Overview | 💻 Developer Guide | 🚀 Ops & Reference |
|---|---|---|
| • ✨ Key Highlights• 🧰 Tools Catalog (42)• 📐 System Architecture• 🔒 Privacy & Security | • 🚀 Quick Start Guide• 💻 CLI Commands• 📂 Monorepo Layout• 🛠️ Adding a New Tool | • 🐳 Docker Deployment• ⚙️ Environment Config• 📖 Deep-Dive Docs• 🐙 GitHub Repo |
resvg-wasm, transformers.js (client-side AI background removal), FFmpeg, and native browser codecs (WebP, AVIF, VP9/Opus).oven/bun:latest runtime bundle with a read-only root filesystem, dropped Linux capabilities, and non-root execution.QBTools includes 42 high-performance tools organized into 8 intuitive categories:
| Tool | Slug | Engine / Technology | Description |
|---|---|---|---|
| Compress Image | compress-image | Native Canvas / WASM | Reduce image size with fine control over quality, dimensions, and formats (JPEG, PNG, WebP, AVIF). |
| Resize Image | resize-image | OffscreenCanvas | Change width and height in pixels or percentage with aspect ratio locking. |
| Convert Image | convert-image | Native + libheif | Convert seamlessly between JPG, PNG, WebP, and AVIF, including native Apple HEIC input. |
| Background Remover | remove-background | ormbg ONNX / WASM | Instant, local AI segmentation to cut out people, pets, and products without uploading images. |
| OG Banner Maker | og-banner-maker | resvg-wasm Worker | Design social Open Graph cards with custom typography, gradients, templates, and 1-click export. |
| Favicon Generator | favicon-generator | resvg-wasm + ZIP | Generate production favicon kits (ICO, multi-resolution PNG, SVG, webmanifest) in a single ZIP. |
| App Icon Generator | app-icon-generator | resvg-wasm Worker | Build complete iOS asset catalogs (AppIcon.appiconset), Android adaptive icons, and macOS .icns. |
| PNG to SVG | png-to-svg | Image Tracer / Vectorizer | Convert PNG and raster photos into clean, scalable SVG vector graphics. |
| Tool | Slug | Engine / Technology | Description |
|---|---|---|---|
| Merge PDF | merge-pdf | pdf-lib | Combine multiple PDF files into one neatly ordered document. |
| Split PDF | split-pdf | pdf-lib | Extract specific page ranges or burst all pages into individual files. |
| Compress PDF | compress-pdf | pdf-lib stream optimizer | Shrink PDF file sizes while preserving vector text and embedded formatting. |
| Image to PDF | image-to-pdf | pdf-lib | Convert image galleries and document scans into a standardized, paginated PDF. |
| Protect PDF | protect-pdf | pdf-lib encryption | Encrypt PDF files with user passwords or unlock documents with existing credentials. |
| Watermark PDF | watermark-pdf | pdf-lib Canvas | Stamp custom text banners (CONFIDENTIAL, DRAFT) or transparent logo overlays. |
| Redact PDF | redact-pdf | Canvas + pdf-lib | Draw redaction masks over sensitive information and sanitize the output permanently. |
| Searchable PDF (OCR) | ocr-pdf | Tesseract.js WASM | Perform OCR on scanned PDF pages and produce a searchable, selectable text layer. |
| Tool | Slug | Engine / Technology | Description |
|---|---|---|---|
| Image & PDF to Text | extract-text | Tesseract.js (WASM) | Extract text from scans and photos with multilingual OCR (English, Arabic, and more). |
| Word Counter | word-counter | Pure Engine | Real-time counting for words, characters, sentences, paragraphs, and reading time. |
| Case Converter | case-converter | Pure Engine | Instant casing toggles: UPPERCASE, lowercase, Title Case, camelCase, kebab-case, and snake_case. |
| Grammar Helper | grammar-checker | AI Server Function | AI-assisted spelling, punctuation, and style suggestions with inline diffs. |
| Paraphrase Helper | paraphrasing-tool | AI Server Function | Rewrite sentences and paragraphs across various tones (Professional, Casual, Academic, Creative). |
[!NOTE] Grammar Helper and Paraphrase Helper are the only tools that utilize server-side API processing (via Anthropic SDK). All requests are character-capped (5,000 chars) and IP rate-limited.
| Tool | Slug | Engine / Technology | Description |
|---|---|---|---|
| Video Compressor | video-compressor | FFmpeg WASM / VP9 | Shrink MP4/WebM video file size for Discord, WhatsApp, and email attachments. |
| Audio Trimmer | audio-trimmer | Web Audio API / WaveSurfer | Cut audio clips and music with millisecond accuracy, waveform visualization, and fade effects. |
| Thumbnail Maker | thumbnail-maker | OffscreenCanvas | Create high-CTR YouTube and social media thumbnails with custom banners, text, and badges. |
| Video Trimmer | video-trimmer | Native / FFmpeg | Trim, cut, and shorten video timelines with interactive frame scrubbing. |
| Video to Audio | video-to-audio | AudioContext / FFmpeg | Extract clean audio soundtracks (MP3/WAV/AAC) directly from video files. |
| Video to GIF | video-to-gif | FFmpeg / WASM | Convert clips into optimized, looped animated GIFs with custom FPS and palette mapping. |
| Tool | Slug | Engine / Technology | Description |
|---|---|---|---|
| File Encryptor | file-encryptor | WebCrypto (AES-256-GCM) | Lock any file with a password-derived key using PBKDF2 (100k iterations) and AES-256-GCM. |
| Hash & Checksum | hash-generator | WebCrypto / Streaming | Generate SHA-256, SHA-512, MD5, and CRC32 checksums with chunked 4 MiB streaming for large files. |
| Text Encryptor | text-encryptor | WebCrypto (AES-GCM) | Encrypt confidential messages and notes into a portable, password-protected ciphertext bundle. |
| Tool | Slug | Description |
|---|---|---|
| Age Calculator | age-calculator | Calculate exact chronological age in years, months, days, hours, and count down to upcoming birthdays. |
| EMI Calculator | emi-calculator | Compute monthly loan installments, total payable interest, and view an interactive amortization table. |
| Percentage Calculator | percentage-calculator | Calculate percentage increases, discounts, fractional ratios, and margin differences. |
| GPA Calculator | gpa-calculator | Compute semester and cumulative GPAs across multiple grading scales (4.0, weighted, letter grades). |
| BMI Calculator | bmi-calculator | Calculate Body Mass Index using metric or imperial measurements with healthy weight guidance. |
| Tool | Slug | Description |
|---|---|---|
| QR Code Generator | qr-code-generator | Generate styled vector QR codes for URLs, WiFi credentials, vCards, SMS, and plain text. |
| Password Generator | password-generator | Generate cryptographically secure passwords or memorable multi-word passphrases (EFF wordlist). |
| Invoice Generator | invoice-generator | Create clean, professional, print-ready PDF invoices with custom items, taxes, and branding. |
| Signature Maker | signature-generator | Draw or type personalized digital signatures and export as clean transparent PNGs. |
| Barcode Scanner & Gen | barcode-scanner | Scan barcodes from camera/images or generate EAN, UPC, Code-128, and Code-39 barcodes. |
| Tool | Slug | Description |
|---|---|---|
| Code Formatter | code-formatter | Format JSON, TypeScript, JavaScript, HTML, CSS, SQL, and Markdown completely offline. |
| Compression Benchmark | compression-benchmark | Compare real-world compression ratios and speed between Gzip, Brotli, and Zstandard on your own files. |
flowchart TD
subgraph Browser ["Client Browser (Zero-Upload Sandbox · 100% Client-Side)"]
direction TB
UI["React 19 / TanStack Router UI"]
WorkerPool["Web Workers & WASM Engine"]
UI -->|"File Input"| WorkerPool
subgraph WASM ["Local WASM & Client-Side Processing Engines"]
direction LR
Resvg["resvg-wasm<br/>SVG & Icon Rasterizer"]
ONNX["ormbg ONNX<br/>AI Background Remover"]
FFmpeg["ffmpeg.wasm<br/>Audio & Video Transcoding"]
PDF["pdf-lib<br/>PDF Assembly & OCR"]
Crypto["WebCrypto<br/>AES-256-GCM / SHA-256"]
end
WorkerPool --> WASM
WASM -->|"Instant Local Output"| UI
end
subgraph Server ["Server Runtime (Bun + Docker · Optional Self-Hosted Services)"]
direction TB
subgraph ServerCore ["Public Server Endpoints"]
direction LR
SSR["TanStack Start SSR (:8310)"]
SQLite[("SQLite (bun:sqlite + Drizzle)<br/>Waitlist, Contacts, Leads")]
AI["AI Grammar / Paraphrase<br/>(Anthropic SDK · Opt-in)"]
end
subgraph PrivateCloud ["Optional Private Cloud (Signed-in Users)"]
direction LR
Auth["Better Auth<br/>(GitHub OAuth)"]
PGlite[("PGlite User State<br/>Favorites & History")]
RustFS[("RustFS / S3 Object Store<br/>Encrypted Media Backup")]
end
SSR --> SQLite
Auth --> PGlite
Auth --> RustFS
end
PDF ~~~ SSR
UI -.->|"Page Request / SSR"| SSR
UI -.->|"AI Requests Only (Opt-in)"| AI
UI -.->|"Explicit Save / Backup"| Auth
git clone https://github.com/Quadbits-Lab/QBTools.git
cd QBTools
bun install
cp .env.example apps/web/.env
(Review apps/web/.env to configure optional AI keys, analytics, or OAuth credentials)
bun run dev
Open http://localhost:8310 in your browser. Live HMR is active across all workspaces!
| Command | Workspace | Description |
|---|---|---|
bun run dev | @qbtools/web | Starts development server with HMR at http://localhost:8310 |
bun test | Root | Runs unit tests across engines, search index, DB, and widget parity |
bun run typecheck | Root | Type-checks all monorepo packages with strict TypeScript |
bun run lint | Root | Runs Biome code analysis and formatting checks |
bun run format | Root | Applies automated Biome code fixes across the codebase |
bun run build | @qbtools/web | Compiles production assets and server bundles |
bun run start | @qbtools/web | Starts the production Bun web server |
bun run assets:prepare | Root | Compiles and validates versioned WASM artifacts & web workers |
bun run db:backup | @qbtools/db | Performs safe online SQLite snapshot (VACUUM INTO) |
bun run test:browser | Root | Runs end-to-end Playwright browser integration tests |
bun run cli | qbtools | Runs the qbtools terminal app (interactive TUI + headless mode) |
The same 42 tools run in your terminal via qbtools (apps/cli, built with
Ink on Bun): an interactive console (fuzzy tool browser, schema-driven forms,
event log, system cleanup) with a scriptable headless mode (run, --json,
stdin/stdout piping, deterministic exit codes), a system cleanup utility for
macOS/Linux/Windows, and optional server sync via CLI API keys.
bun run cli # interactive UI (from the repo)
qbtools run bmi-calculator --weight 70 --height 175 --json
qbtools cleanup scan # read-only cache inventory
qbtools doctor # environment check
See apps/cli/README.md,
features,
tutorials and
npm deployment.
QBTools/
├── apps/
│ └── web/ # Main TanStack Start application
│ ├── src/routes/ # File-based routes & endpoints (sitemap.xml, robots.txt, etc.)
│ ├── src/components/ # Shared UI components, search modal, widget kit, layout
│ ├── src/tools/<slug>/ # Lazily-loaded tool widgets (heavy libraries load on-demand)
│ └── src/server/ # Server functions (AI, auth, admin, rate-limiting)
├── packages/
│ ├── registry/ # Tool definitions, categories, SEO copy, FAQs, presets, search ranker
│ ├── engines/ # Framework-free pure processing logic (calculators, text, image, pdf)
│ ├── ui/ # Design tokens (theme.css), buttons, inputs, modals
│ ├── content/ # Educational guides, articles, and documentation
│ └── db/ # SQLite schemas, Drizzle migrations, and backup tooling
├── docker/
│ └── Dockerfile # Multi-stage oven/bun:latest container build
├── scripts/ # WASM preparation, Service Worker compilation, and backup utilities
├── compose.yml # Docker Compose production definition
└── turbo.json # Monorepo pipeline configuration
QBTools uses an automated registry-driven architecture. To add a new utility:
Define Tool Metadata:
Add a ToolDef entry to packages/registry/src/tools/<category>.ts. Provide its title, slug, SEO description, FAQs, and preset configurations:
export const newTool: ToolDef = {
slug: "my-tool",
name: "My Awesome Tool",
category: "developer",
tagline: "Short 1-line benefit.",
description: "Detailed description...",
keywords: ["tag1", "tag2"],
faqs: [...],
steps: [...]
};
Implement Processing Logic:
Write framework-independent pure logic in packages/engines/src/<category>/ and write unit tests in *.test.ts.
Build the Widget UI:
Create apps/web/src/tools/<slug>/index.tsx using the @qbtools/ui component kit.
Register the Widget:
Export the lazy loader in apps/web/src/tools/widgets.ts:
"my-tool": () => import("./my-tool")
Verify with Tests:
bun test
[!TIP] The test suite automatically asserts widget-registry parity. Search indices, sitemaps, categories, and related tool recommendations will update automatically!
QBTools is packaged as a multi-stage image that builds and runs on the official oven/bun:latest image:
# 1. Prepare environment
cp .env.example .env
# 2. Build and launch
docker compose up -d --build
# 3. Check container health
docker compose ps
bun user./tmp and /data writable.cap_drop: ALL and no-new-privileges: true.qbtools-data volume.[!NOTE] Compose publishes port
8310directly. Place a reverse proxy (Caddy, Nginx, Traefik, or Cloudflare Tunnel) in front for TLS termination, then setTRUST_PROXY=trueandHSTS=true.
All configuration flags are documented in .env.example. Essential environment variables include:
| Variable | Default | Purpose |
|---|---|---|
SITE_URL / VITE_SITE_URL | http://localhost:8310 | Canonical origin for SEO tags, sitemaps, and robots.txt |
PORT | 8310 | Web server listening port |
ADMIN_TOKEN | (empty) | Secret key for accessing /admin (leads, waitlist, CSV export) |
AI_API_KEY | (empty) | Anthropic API key for Grammar and Paraphrasing helpers |
AI_MODEL | claude-3-5-haiku-latest | Model used for text transformations |
BETTER_AUTH_SECRET | (empty) | 32+ character random secret for session encryption |
GITHUB_CLIENT_ID | (empty) | GitHub OAuth application client ID |
GITHUB_CLIENT_SECRET | (empty) | GitHub OAuth application client secret |
PGLITE_DATA_DIR | /data/users | Directory path for persistent PGlite user database |
S3_ENDPOINT | (empty) | S3 endpoint URL for RustFS private media storage |
VITE_ADSENSE_CLIENT | (empty) | Google AdSense publisher ID (e.g. ca-pub-...) |
VITE_ANALYTICS_SRC | (empty) | URL for lightweight, cookieless analytics (Plausible / Umami) |
frame-ancestors 'none', object-src 'none', and restricted connect domains.HttpOnly, SameSite=Strict session cookie.