Skip to content

Add Steam Pinyin Search - #225

Open
simonheard wants to merge 3 commits into
SteamClientHomebrew:mainfrom
simonheard:agent/add-steam-pinyin-search
Open

Add Steam Pinyin Search#225
simonheard wants to merge 3 commits into
SteamClientHomebrew:mainfrom
simonheard:agent/add-steam-pinyin-search

Conversation

@simonheard

@simonheard simonheard commented Aug 14, 2026

Copy link
Copy Markdown

Steam Pinyin Search

Steam Pinyin Search adds Chinese-name, full-pinyin, compact-pinyin, initials, mixed-text, and community-alias search to the Steam Library. Library indexing and ordinary Library searches remain entirely local. An optional online alias lookup sends only the typed query and intersects returned public AppIDs with the local library.

It also adds an opt-in Store autocomplete. Users may keep it disabled, use a local catalog, or configure an HTTPS server they control. Network failure is isolated from Steam's native search. The server implementation is included in the same MIT-licensed repository and can be self-hosted.

Repository: https://github.com/simonheard/steam-pinyin-search

Release: https://github.com/simonheard/steam-pinyin-search/releases/tag/v0.1.2

Pinned commit: fe83c2b (v0.1.2 code plus post-release documentation/privacy cleanup)

Task Checklist

Developer

  • I am the original author or an authorized maintainer of this plugin.
  • I have complied with all license requirements for the libraries used, including providing appropriate notices where necessary.
  • My plugin is fully open source and does not depend on any external paid services, except for widely trusted and well-known platforms. Additionally, neither I nor anyone associated with me profits from any such services.

Plugin Functionality

  • I have tested the plugin on both the Stable and Beta Steam update channels.
  • My plugin is unique, or provides additional or alternative functionality to plugins already on the store.

The plugin has been fully tested on Steam Client Stable with Millennium 3.4.0. Steam Beta was attempted, but Millennium itself repeatedly exited with EXCEPTION_ACCESS_VIOLATION before plugin frontend loading, so I am explicitly leaving the combined Stable/Beta checkbox unchecked rather than claiming a completed Beta test.

Backend Configuration

  • No: I use a standard Millennium python backend in my plugin.
  • No: I use custom binaries or rely on other FOSS projects that are not written directly using Millennium's python backend.

The plugin frontend is TypeScript/React and ships no native executable or background service. The optional Store API is an independently deployable, open-source server; it is not bundled into or started by the Millennium plugin.

Community Contribution

  • I have tested and left feedback on two other plugin pull requests.
  • I have added links to those feedback comments in this PR.

Testing Instructions

  1. Install the pinned plugin commit, restart Steam, enable Steam Pinyin Search under Millennium -> Plugins, and reload Steam when prompted.
  2. In Library, verify Chinese names can be found by original text, compact pinyin, and initials; for example, a locally owned Chinese-title game should match its generated pinyin and initials.
  3. Verify English, numeric, and mixed queries still work and that selecting a result opens the corresponding Library app.
  4. Open the plugin settings. Toggle Store search off and confirm Steam's native Store search remains untouched.
  5. Enable Store search with the server field empty and confirm local-only behavior is used.
  6. Configure a privately supplied temporary HTTPS endpoint, save, reload Steam, and verify Store pinyin results and community aliases such as laotouhuan appear when applicable. The temporary hostname will be rotated or decommissioned after reviewer testing and is intentionally not published in this PR.
  7. With online Library aliases enabled, verify the same public alias query only returns games actually present in the local library.
  8. Disconnect the network or configure an unreachable HTTPS endpoint. Confirm requests time out silently and Steam's native Store search, Enter behavior, and Library UI remain usable.
  9. Disable/re-enable or reload the plugin and confirm there are no duplicate dropdowns, listeners, observers, or stale React roots.

Automated validation covers strict TypeScript, lint, 66 tests, production builds, packaging, and 1,000/5,000/10,000-game benchmarks. The repository's GitHub Actions validation passes on Windows and Ubuntu, including a PluginDatabase-style Node 20 production build.

  • Verified by a third party on Steam Client Stable.
  • Verified by a third party on Steam Client Beta.

@simonheard
simonheard marked this pull request as ready for review August 14, 2026 11:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants