AI-native expressions for two-way chat: people see images, while text-only models read fixed meanings; includes a picker, custom expressions, import/export, and two visual styles.
Install
# from a prebuilt release tarball
dsh plugin --profile web add "https://github.com/5101good/amoji/releases/download/v1.0.0/amoji-dsh-1.0.0.tgz"
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:5101good/amoji#path:/adapters/dsh
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
中文 · Project and documentation
Native expressions for people and AI: people see artwork, models read fixed meaning. Version 2.0.0 targets dsh 0.1.5-rc.2, requires Node.js >=24. Historical live-host records are from macOS arm64; see the 2.0.0 release notes for this release’s scope.
Install and use
Download and verify amoji-dsh-2.0.0.tgz from GitHub Releases. Run from its directory:
The first command initializes the Web template for a new profile and prints help; the next commands install and start it.
npx @deepseek-ai/dsh@0.1.5-rc.2 --profile amoji --from-default-profile web --help
npx @deepseek-ai/dsh@0.1.5-rc.2 plugin --profile amoji add ./amoji-dsh-2.0.0.tgz --ignore-scripts
npx @deepseek-ai/dsh@0.1.5-rc.2 --profile amoji
Replace the example profile amoji with your own. Save work before installing into an existing profile, then restart. Select a workspace and open Expressions in the composer without sending preliminary text. Click artwork to send; details only reveal meaning. Fresh libraries have 24 expressions in each of Classic and Office, realizing the same 22 acts and totaling 48 assets. The picker only offers expressions people can send.
Manage expressions provides drafts, personal copies, immutable revisions, archiving, preferences, and .amoji import/export. Creation uses one intent field. AI suggestions default to the current conversation model, with other configured host models available. Only text intent and generation instructions are sent, without artwork or conversation history. Adoption still requires editing as needed, saving, a loaded visual preview, a checked confirmation, and explicit addition to the library. Manual entry requires no model request.
The UI follows dsh's Chinese/English language without rewriting stored semantics. Built-in expressions include their Chinese original and English meaning, with translation provenance. Suggestion charges follow the chosen provider configuration, without automatic retries.
Data and compatibility
The Host connects to the local shared service. Product version 2.0.0 uses the Amoji 0.1 protocol, shared API 3 and database 1. The macOS default directory is ~/Library/Application Support/Amoji/prototype; use AMOJI_DATA_DIR for isolation. Before upgrading from 1.x, stop the old service and back up the complete directory. Version 2.0.0 uses a new library-0.1.sqlite and preserves the old library.sqlite; an empty directory is not required. In-place migration and imports of old .amoji packs are unsupported; never edit the database version number. Uninstalling does not proactively delete the library.
Browsers use host-authenticated RPC; models use three text tools. accepted means the host queued the input while native user-message persistence still awaits reconciliation. observed means the matching native message was observed; rendered separately records successful media loading. Reconcile original requests after disconnection or uncertain outcomes instead of sending another request.
AI image validation targets direct tools; nested Code Dispatch/PTC rendering is not guaranteed. Linux, Windows, newer dsh versions, and all model combinations remain unvalidated. One provider returns HTTP 400 for reasoning_text continuation compatibility; the plugin cannot guarantee complete tool turns for every model. Codex/Claude Code legacy is outside this package's scope.
Contents and licenses
Includes Host/Client, shared core, assets, build information, and license inventories, without node_modules, Sharp .node, or libvips binaries. The host package manager installs dependencies, so this is not an offline installer. Client React and Host services come from dsh.
Code is MIT; the official packs are CC0-1.0; dependencies retain their own licenses. See packaged LICENSE, NOTICE, THIRD_PARTY.json, THIRD_PARTY_LICENSES/, and assets/official-packs/.
Full installation/recovery, usage, and limitations are in the source repository.
Expression marketplace
Open the marketplace from the picker to anonymously search, preview exact releases, install packs, or collect individual expressions. Installation never enables an effect. Updates show semantic and effect differences and require explicit adoption, which disables the previous pack's rules. Retained older expression revisions remain selectable in library management. Removing a pack preserves independent collections, other imports and history.
The Host startup environment fixes AMOJI_MARKET_ORIGIN (defaulting to the public marketplace https://amoji.ai-web.ai). Explicit local tests may use a loopback HTTP origin. Clients and packs cannot override it. Stop hosts and the shared service using that library before changing this deployment setting and restarting. Isolate tests with DSH_HOME and AMOJI_DATA_DIR.
Installed and collected expressions remain usable offline. Cached results disclose their last check time. Failed installs preserve the library; reconcile uncertain outcomes with “Check original operation” instead of blindly issuing a new operation.
Publish from dsh
Confirm a local expression pack under Import and export, then open Publish to marketplace. Save the description for each language, licensing and optional effects in the wizard; expression-only packs need no effects. Sign in through the browser, compare the device name and code shown in dsh, and explicitly approve. Pairing expires after five minutes; cancelled pairing must be restarted. Model settings are not changed.
Review the complete content before upload, validation and explicit submission. If the outcome is unknown, check the original operation and review status instead of creating another submission. Returned feedback remains with the draft; select the revised local pack and create a new version for review. Saved drafts survive disconnection. Credentials stay in the private plugins/amoji/publisher directory of this dsh profile, outside browser storage, packages, model input and the shared library. Do not share that directory. Signing out the device revokes its authorization.
Links
More in this category
zhu1090093659/dsh-web#packages/dsh-task-board★ 10172
Task board for the dsh web GUI: a sidebar multi-column kanban whose cards run in real DSH agent sessions and can also be scheduled with cron expressions, executed host-side even with the browser closed.
zhu1090093659/dsh-web#packages/dsh-web-all★ 10172
Plugin and skin collection for the DSH Web UI: task board, Git graph, right-side panel, remote mobile UI, pet, live token stats, and a skin center.
ccch1mneyyy/dsh-TUI★ 7101
Claude Code-style full-screen terminal UI: pixel-whale header, live status line, and streaming thought expansion.
MeteorNOX/DeepSeek-Balance-Whale-Widget★ 6959
A fixed-corner whale widget for the DSH web GUI — balance, today's usage and per-turn cost with peak/off-peak pricing, editable balance-alert and daily-budget bubbles, a module-based custom bubble queue with A/B weighted choices and random lines or images, 30+ vendor templates (OpenAI, OpenRouter, Kimi, SiliconFlow, Ark, Zhipu, MiniMax and more) with per-model balance and subscription quota, plus task-end sound, imported audio, custom roles and a resource manager. Local-only, no telemetry.
omdsh-dev/DSH-better-sidebar★ 4959
Full sidebar workbench with file rendering and editing, terminal, Git, and subagents; third-party plugins can register new tabs.
Devin-AXIS/deepseek-design#deepseek-idesign★ 1744
Visual design studio for websites, app prototypes, posters, cards, reports, and magazines, with templates, direct element editing, selection-aware AI draft handoff, and export.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.