镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content
EsposterPublic

Latest commit

 

History

30,263 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Build Status Duplicate Code Repository Score OpenSSF Scorecard skills.sh installs Apache-2.0 licensed

Table of Contents

We highly recommend you take a look at the documentation to level up.

Frontend


Nuxt

The Intuitive Web Framework, based on Vue.


Vue

🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.


Vuetify 0

🐉 Headless building blocks for Vue, under the app's own UI library.


Pinia

🍍 Intuitive, type safe, light and flexible Store for Vue using the composition api with DevTools support.

Backend


tRPC

🧙‍♀️ Move Fast and Break Nothing. End-to-end typesafe APIs made easy.


Zod

TypeScript-first schema validation with static type inference.


Drizzle ORM

TypeScript ORM that feels like writing SQL.


PostgreSQL

PostgreSQL is a powerful, open source object-relational database system with over 35 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance.

Infrastructure


Pulumi

Infrastructure as Code in any programming language.

Hosting & Domain Providers


Railway

Infrastructure, Instantly.


Namecheap

ICANN-accredited domain name registrar providing domain name registration and web hosting.

VSCode Extensions

Name Link
Better Comments https://marketplace.visualstudio.com/items?itemName=aaron-bond.better-comments
UnoCSS https://marketplace.visualstudio.com/items?itemName=antfu.unocss
ESLint https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint
GitLens — Git supercharged https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens
GitHub Actions https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-github-actions
Azure Functions https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azurefunctions
Powershell https://marketplace.visualstudio.com/items?itemName=ms-vscode.PowerShell
Oxfmt - Code formatter https://marketplace.visualstudio.com/items?itemName=oxc.oxc-vscode
Material Icon Theme https://marketplace.visualstudio.com/items?itemName=PKief.material-icon-theme
Vue - Official (Volar) https://marketplace.visualstudio.com/items?itemName=Vue.volar

Git configuration to enable symlinks

The projects make use of symlinks in the git project. On Windows, this may not work as expected without extra configuration. To configure git to create symlinks on windows, you need to enable the Windows "Developer Mode" setting, and also set the core.symlinks git feature using either of the following commands:

# Global setting
git config --global core.symlinks true

# Local setting
git config core.symlinks true

After applying this setting, you may need to reset your local branch to ensure the files get rewritten as symlinks. Note that this step is destructive and you will want to push any changes you have made prior to resetting your branch.

git reset --hard

Installing Dependencies

  1. Install the global Vite+ CLI, then the node and pnpm versions the repository pins:
vp env install
  1. Install Node Modules:
pnpm i
  1. Install PostgreSQL + PgAdmin.

  2. Add .env file according to .env.example in apps/web directory.

Checkout the deployment documentation for more information.

Development Server

  1. Build the packages to be used by the application:
vp run build:packages
  1. Change to the app directory:
cd apps/web
  1. Start the development server on http://localhost:3000
pnpm dev

Production

Build the application for production:

pnpm build

Locally preview production build:

pnpm preview

Esposter is a pnpm workspaces monorepo. See monorepo tooling for workspace script orchestration and publishing boundaries. Packages are used directly by the nuxt application via workspace:*.

Workspace Graph

Workspace dependency graph

Each node's hue and tint are the role its edges give it, darkest at what the repo ships and lightest at what the rest of it stands on; the key is drawn into the image. Regenerate it from the repo root with:

pnpm graph:gen

Review

AI sessions commit faster than any reviewer reads, so nothing between a commit and a reviewed release waits on a person. Each session lands its commits on the one permanent ai/queue branch with git pull --rebase origin ai/queue and git push origin HEAD:ai/queue. A GitHub Actions workflow then reviews what landed there: it takes the commits main does not have yet in windows of at most 300 changed files, has headless Haiku reviewers read each window in batches of files they can read whole, and fast-forwards main to the window's last commit. Each window that passes opens an issue for its findings. A fixer session then fixes what it can and lands its commits on ai/queue, and a settler session settles what the fixer left open, so every finding ends fixed, refuted or recorded. The design and the figures live in the review docs.

flowchart LR
  S[AI sessions] -->|git push to ai/queue| Q[(ai/queue)]
  Q -->|window of commits| R[Haiku reviewers]
  R -->|window passed: fast-forward| M[(main)]
  R -->|findings| I[Review issue]
  I -->|fixer, then settler: commits| Q
Loading

Warning

The published packages are built for this repository first. Use them at your own risk: their APIs may change in any release, without a deprecation period, in pursuit of better performance and simpler code.

Package Description Published
apps/functions Serverless Azure Functions backend — push notifications, webhooks, EventGrid —
apps/infra Pulumi infrastructure code and migration tools for Azure resources —
apps/web Main Nuxt web application — frontend, server routes, tRPC API —
packages/agent-console-server Agent console host — Claude Code sessions over a token-gated loopback WebSocket ✓
packages/azure Azure wire conventions — OData filter clauses, entity key casing, service limits ✓
packages/azure-mock Mock Azure service classes for local dev and testing ✓
packages/configuration Shared ESLint, TSConfig, and tsdown build configurations —
packages/db Database connection utilities for Drizzle ORM, Azure Table, Blob, and WebPubSub —
packages/db-mock In-memory PGlite database factory for unit and integration tests —
packages/db-schema Drizzle ORM schemas and migrations (PostgreSQL source of truth) —
packages/follow-ups Claude Code plugin — a session's unfinished follow-ups written into a TodoList and drained until none is left —
packages/genshin-engine Anime-style open-world engine for three.js WebGPU — toon materials, outlines, post-processing, world kits and music ✓
packages/genshin-interface Genshin's 2D interface — the screen root, its units and pointer, and the pieces the game's screens share ✓
packages/genshin-mods Claude Code plugin — six mods under one band: next steps, cache and usage with a one-click handoff, recording mode, a goal meter, a collision guard and a delegation guard ✓
packages/genshin-persona Claude Code plugin — a Genshin character picked by birthday, replies spoken in its own cloned voice ✓
packages/genshin-text The game's own text in its fifteen languages — the language registry, a locale matcher, and the game's strings by text id ✓
packages/genshin-world Genshin's world on the engine — the region catalogue, each region's data, the TresJS components and the interface screens ✓
packages/headless-block-editor A headless block editor: a typed node tree over a registry, the commands that edit it as JSON Patch operations, navigation and undo history, with no framework or DOM. ✓
packages/keyframe-store Content-addressed version store — zstd keyframes and deltas over any backend ✓
packages/math-expression-compiler Math expressions compiled once into a function of plain numbers — mathjs's numeric language, held to parity with its recorded answers ✓
packages/mjml-blocks MJML's components as block types on the headless block editor — each component's attributes, defaults and nesting rules, a render to MJML's JSON form and source, and a read back from MJML, with no framework, DOM or MJML runtime. ✓
packages/nuxt-security-module Nuxt security module for Nitro 3 and h3 2 — security headers, a nonce Content Security Policy, subresource integrity, CORS, basic auth, a rate limiter and a request size limit ✓
packages/parse-tmx Parser for Tiled Map Editor .tmx files ✓
packages/pitch-transcription The notes in a recording — Basic Pitch on ONNX Runtime, its readings turned into notes, bends and MIDI ✓
packages/shared Shared TypeScript types, utilities, and error classes ✓
packages/shared-node Node-only shared tooling — the machine-wide download cache, hidden-window child processes and benchmark reporting for vitest bench runs ✓
packages/tresjs-nuxt TresJS for Nuxt — a Nuxt module that auto-imports the TresJS core API, registers TresCanvas for client and server, and registers every installed @tresjs package's components and composables, with no devtools UI of its own. ✓
packages/trpc-msw tRPC for Mock Service Worker — every transport answered by tRPC's own handlers ✓
packages/trpc-nuxt-module tRPC for Nuxt — a module registering the router's HTTP and WebSocket handlers, with composables over useAsyncData ✓
packages/vue-canvas-frame-headless A headless canvas frame: an isolated document at a width, scaled down to fit a narrower pane, with its styles adopted into it, and no styling of its own. ✓
packages/vue-grid-layout-headless A headless grid: the placement of items on a grid of cells, and the pointer gestures that move and resize them, with no styling. ✓
packages/vue-pdfjs-headless Headless Vue composables over pdfjs-dist: a document's loading, a page's drawing and the viewer's state, with no styling and no renderer of its own. ✓
packages/vue-phaserjs Phaser game engine integration for Vue ✓
scripts The repository's own tooling — workspace graph, dependency report, sweep scans —

This repository is also a Claude Code plugin marketplace named esposter, declared in .claude-plugin/marketplace.json. Anyone adds it by the repository's GitHub name and installs a plugin by its marketplace name:

claude plugin marketplace add Esposter/Esposter
claude plugin install genshin-persona@esposter
claude plugin install genshin-mods@esposter
Plugin What it does
genshin-mods Six mods: five under one band above the prompt, waypoints (the next steps, one press each), resin (cache, context, limits and cost, with warm, compact and a one-click handoff), veil (recording mode), commission (a goal's task list and clock) and ward (a question before editing a file another session just changed), and a delegation guard that nudges a run of lookups toward a haiku agent.
genshin-persona Speaks as the Genshin Impact character whose birthday is nearest to today, in prose only, and reads each reply aloud, a sentence at a time, in the character's own cloned voice.

A plugin here is an ordinary workspace package, so it is formatted, linted, tested and dependency-bumped with everything else, and a merge to main is its release: an installed copy follows the marketplace on the next plugin update. How that is built, and what it deliberately does not do, is on the Claude interface page.

We welcome contributions from everyone and are committed to maintaining a friendly, safe, and welcoming community. Please see our Code of Conduct and Security Policy for more information.

This project is licensed under the Apache-2.0 license.

Releases

Used by

Contributors

Languages