MCPcopy Index your code
hub / github.com/Lymphatus/caesium-app-web

github.com/Lymphatus/caesium-app-web @v2.2.3

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.2.3 ↗ · + Follow
185 symbols 365 edges 11 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Caesium Web Image Compressor

An image compressor that runs entirely on your browser, completely offline. Powered by libcaesium-wasm. You can try it at caesium.app.

Screenshot 2025-05-09 at 11-21-11 Caesium Image Compressor - Online

Features

  • JPG, PNG and WebP supported
  • Lossy and lossless compression
  • Keeps images metadata
  • Before/after comparison
  • Runs entirely on your browser, no images are uploaded or processed on any external server. Try loading the app and then turn off your internet connection to see the magic.

Build

Setup

Make sure to install the dependencies:

npm install

Development Server

Start the development server on http://localhost:3000:

npm run dev

Production

Build the application for production:

npm run build

Locally preview production build:

npm run preview

Run on docker

Build

You can pull the official docker images

docker pull lymphatus/caesium-app-web:latest

or build it yourself

docker build -t caesium-web-app .

Run

docker run -d -p 3000:3000 lymphatus/caesium-app-web:latest

Then you can visit localhost:3000 to start using the app.

Configuration

You can set the following ENV variables to tweak the compressor to your preferences.

  • NUXT_PUBLIC_SEND_USAGE_REPORT: (boolean | default: true) send usage stats for the compressed images to the NUXT_PUBLIC_API_ENDPOINT. Set it to false if you don't care about it.
  • NUXT_PUBLIC_API_ENDPOINT: (string | default: "") the endpoint where you can send compression stats.
  • NUXT_PUBLIC_COMPRESSOR_MAX_FILES: (number | default: 5) how many files are allowed to be added to the list in the same batch.
  • NUXT_PUBLIC_COMPRESSOR_MAX_FILE_SIZE: (number | default: 20000000) max limit for each image size, in bytes.

Extension points exported contracts — how you extend this code

Window (Interface)
(no doc)
global.d.ts
CImage (Interface)
(no doc)
app/utils/utils.ts
GeneralMessage (Interface)
(no doc)
app/utils/utils.ts
CompressionResult (Interface)
(no doc)
app/utils/utils.ts

Core symbols most depended-on inside this repo

getWasmTableEntry
called by 41
app/assets/wasm/libcaesium-wasm.js
setTempRet0
called by 9
app/assets/wasm/libcaesium-wasm.js
abort
called by 8
app/assets/wasm/libcaesium-wasm.js
UTF8ArrayToString
called by 6
app/assets/wasm/libcaesium-wasm.js
finish
called by 5
app/assets/wasm/libcaesium-wasm.js
stringToUTF8Array
called by 4
app/assets/wasm/libcaesium-wasm.js
lengthBytesUTF8
called by 4
app/assets/wasm/libcaesium-wasm.js
removeRunDependency
called by 4
app/assets/wasm/libcaesium-wasm.js

Shape

Function 168
Enum 6
Method 5
Interface 4
Class 2

Languages

TypeScript100%

Modules by API surface

app/assets/wasm/libcaesium-wasm.js152 symbols
app/stores/compressor.ts14 symbols
app/utils/utils.ts9 symbols
app/utils/task-pool.ts7 symbols
app/assets/workers/compression-worker.js2 symbols
global.d.ts1 symbols

For agents

$ claude mcp add caesium-app-web \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact