返回资讯中心
外部精选
软件工程
#开发者实时流

Tool to easily copy features from one desktop framework to another

Your favorite features. In your favorite apps.

Hacker News 最新aclmakes2026/10/25 · 16 天前16 分钟阅读

以下正文同步自 Hacker News 最新,版权归原站所有,已转换为易读排版。

Your favorite features. In your favorite apps.

Yoinkr helps investigate a desktop application's implementation, recover a feature and its dependencies, adapt it to a different application, and check whether the result behaves correctly. It combines a local workbench, a CLI, recipe-driven adapters, and optional MCP tools for coding agents.

It is an experimental developer tool. Transfers require application-specific work; this is not a universal one-click application merger.

Examples — choose a donor/recipient pair, build it locally, and see what is actually supported.

Framework support — verified routes and explicit gaps.

Transfer workflow — investigate, recover, integrate, compare, and roll back.

MCP setup — connect a compatible coding agent. No specific AI host is required.

Install and run

Requires Node 22.19+ on the 22.x line, 24.11+ on 24.x, or 26+ and npm. Native examples may require additional tools listed in their own guides.

git clone https://github.com/androslee/yoinkr.git cd yoinkr npm ci --ignore-scripts node src/cli.js --help node src/cli.js backend node src/cli.js doctor

To investigate two applications:

node src/cli.js workbench --app /path/to/donor --app /path/to/recipient

Open the localhost URL printed by the command. Supply actual local application directories; downloaded applications and previous investigation cases are not part of this repository. Workbench guide.

Analysis and builds run locally without model tokens. Installing dependencies and acquiring third-party inputs require internet access. Connecting an AI agent is optional and may have its own usage charges.

Example What is transferred Scope

uBlock Origin → VS Code Original uBlock, Dark Reader and adapted RES in a browser with vertical tabs and named sessions Separate browser session; default/custom network filtering, cosmetics, scriptlets and original controls. Linux scope and checks in the example guide.

Krita → OBS Original Qt triangle color selector controlling transparent live ink Actual OBS dock, GPU scene rendering, restart and guarded rollback verified on the pinned Linux/Qt lane. RGB host; not Krita’s full paint engine.

Screenity → Firefox Original drawing, highlighting, arrows, shapes, text and history modules Experimental Firefox recording studio with a separate portable browser/profile. Partial port; see the example for tested capture modes and limits.

MQTT Explorer → VS Code / Joplin Recovered Raw/Diff comparison UI Historical verified result; source tooling retained, generated MQTT apps/bundles excluded from release.

Element → VS Code Original message-highlighting classes Native local transcript-search window. Does not include Matrix services or the full Element UI.

GIMP → OBS Original stroke-smoothing function Experimental Qt dock/annotation source; compilation and numeric checks established, actual OBS/GIMP GUI acceptance pending.

Each example describes original versus new code, exact input versions, setup, output locations and verification limits. Third-party source/runtime downloads, browser profiles, credentials, recovered payloads, screenshots and large binaries are generated locally and excluded from Git.

The uBlock Origin → VS Code example adds a native browser window to a separate copy of Code:

This restores the original blocker's filtering workflow in the tested Electron host. It does not claim a measured blocking-rate advantage over Lite. DNS/CNAME uncloaking and Firefox response-body filtering remain future work. The guide includes setup, build, verification and rollback instructions; native verification currently covers Linux x86-64. Source and recipes are shared here; downloaded applications, generated builds and browsing profiles stay local.

Investigate the donor and intended recipient using the pinned REA analysis engine.

Recover a bounded feature, keeping its original code, assets, dependencies and attribution.

Adapt the browser/host interfaces through an explicit recipe. A missing host API may require replacement code or make a transfer infeasible.

Verify behavior against original inputs, check permissions and lifecycle, and retain a reproducible result.

Deliver into a separate application copy with drift checks and rollback where supported.

An extension, source module, rendered UI and native component are different transfer boundaries. Passing one example does not establish arbitrary compatibility with its entire framework. Windows and macOS native application adapters remain unverified.

Task Guide

Understand the public repository layout Repository contents

Explore framework/application candidates Framework catalog

Use CLI and local investigations Transfer workflow, evidence queries

Export and reproduce a recipe Portable delivery

Build recovered UI packages Feature packages, host adapters

Use agent tools MCP setup and permissions

Preserve existing Modkit workspaces Rename compatibility

Prepare a release or hand off Windows checks Release checklist

Development

npm test

See CONTRIBUTING.md for setup, checks and pull-request guidance.

The regression suite uses temporary fixtures. Native and browser checks need the runtimes/tools documented in each example and write local results. Historical development receipts are not bundled; reproduce the relevant checks rather than assuming a missing local screenshot exists in a fresh checkout.

Yoinkr is licensed under GNU GPLv3. Third-party software and recovered features retain their own licenses, notices and redistribution requirements. Public examples contain acquisition recipes and host code; they do not grant new rights to donor applications. Upstream provenance, third-party notices and license review.

thanks for taking a look. my inspiration for this was the deepseek harness with its cordis plugin system. where you could just about add anything to it. infintely modable. and the universal modder (rehan-remade/universal-modder) for video games. after looking into it and realizing "other things" likely had the same attack vector/exploit possibility that was used there (common applications built on the same engines/frameworks), i thought that idea should be able to transfer to something broader. why not desktop applications too. can we take features from application FOO and easily transfer them exactly into the 2nd application BAR because they are built on the same framework BAZ.

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →