Skip to content

superche/windows-app-launcher

Repository files navigation

Windows App Launcher

Personal Tutti workspace app for launching Windows applications through Wine.

中文说明见 中文.

Status

This is a phase-one proof of concept:

  • Tutti hosts the launcher UI.
  • The app stores Wine profiles in the Tutti app data directory.
  • The app starts native Wine windows for manual operation.
  • When Wine is missing, the app can open Tutti terminal with the Homebrew install command prefilled for the user to review and run.
  • The log panel can open Tutti's built-in Codex or Claude Code chat with the selected profile and session log prefilled.
  • AI desktop control, VM management, embedded Windows rendering, and daemon-level Windows runtime APIs are intentionally out of scope.

Load In Tutti

Use App Center's Load unpacked action and select either:

package/

or, for local development:

.tutti/dev-app/

For this repository, the project root can also be loaded because it contains the .tutti/dev-app/ wrapper.

Profile Fields

Required fields:

  • Name: display name in the launcher.
  • Executable path: the Windows .exe file to launch through Wine.

Recommended field:

  • Working directory: the process cwd. If you choose an executable through the UI and this field is empty, the app fills it with the executable's parent folder. This is usually correct for portable apps and games.

Advanced fields:

  • Wine command: custom Wine executable. Leave as wine to resolve from PATH.
  • Wine prefix path: optional WINEPREFIX. Leave empty to let Wine use its default prefix, usually ~/.wine.
  • Arguments: command-line flags passed after the .exe path.
  • Environment: extra KEY=value lines merged into the Wine process environment.

Simple Demo App

Use Notepad++ Portable for the first manual test:

https://github.com/notepad-plus-plus/notepad-plus-plus/releases/download/v8.9.6.4/npp.8.9.6.4.portable.x64.zip

Download the zip, unzip it, then choose the extracted notepad++.exe as the Executable path.

Alternative installer smoke:

https://www.7-zip.org/a/7z2602-x64.exe

Development

Validate the Tutti package:

pnpm check

Build a release package directory for the Tutti app release workflow:

pnpm package:tutti

The generated package is written to:

build/tutti-app/package/

Release

This repository includes a production caller workflow for Tutti's reusable app release pipeline:

.github/workflows/publish-tutti-app-production.yml

The workflow calls:

tutti-os/tutti/.github/workflows/publish-tutti-app-release.yml@main

It expects the target GitHub repository or organization to provide the Tutti app release AWS/OIDC variables described in the workflow. Run the workflow manually with release_bump=patch|minor|major. Use publish_catalog=true to publish the release and update the App Center catalog in the same run.

AI Notes

For AI agents working in this repository:

  • Start with docs/HUMAN_AI_GUIDE.md.
  • Keep the app small and local-first.
  • Do not add AI control, VM orchestration, or OS-level runtime ownership to this package without a product decision to move those responsibilities into Tutti.
  • Do not write durable state outside TUTTI_APP_DATA_DIR.
  • Do not hard-code host or port; Tutti injects TUTTI_APP_HOST and TUTTI_APP_PORT.

中文

Windows App Launcher 是一个个人 Tutti workspace app,用 Wine 启动 Windows 软件。

当前范围

这是阶段一验证:

  • Tutti 托管启动器 UI。
  • app 把 Wine profile 存在 Tutti app data 目录。
  • app 启动原生 Wine 窗口,先支持人工操作。
  • Wine 缺失时,app 可以打开 Tutti terminal,并预填 Homebrew 安装命令,等待用户确认执行。
  • 日志区域可以打开 Tutti 内置 Codex 或 Claude Code 对话,并自动带上选中的 profile 和 session 日志。
  • AI 桌面控制、VM 管理、Windows 画面嵌入、Tutti daemon 级 Windows runtime API 暂不在这个包里实现。

在 Tutti 中加载

在 App Center 里使用 Load unpacked,选择:

package/

本地调试也可以选择:

.tutti/dev-app/

或者直接选择仓库根目录,因为根目录包含 .tutti/dev-app/ 包装。

Profile 字段

必填:

  • Name:启动器里展示的名称。
  • Executable path:要通过 Wine 启动的 Windows .exe

推荐:

  • Working directory:进程工作目录。通过 UI 选择 .exe 时,如果这个字段为空, app 会自动填成 .exe 所在目录。对 portable app 和游戏通常是正确默认值。

高级选项:

  • Wine command:自定义 Wine 可执行文件。默认 wine,从 PATH 查找。
  • Wine prefix path:可选 WINEPREFIX。留空时 Wine 使用默认 prefix,通常是 ~/.wine
  • Arguments:传给 .exe 的命令行参数。
  • Environment:额外环境变量,每行 KEY=value

发布

仓库内置 Tutti app release caller workflow:

.github/workflows/publish-tutti-app-production.yml

它调用 Tutti 的复用发布 workflow。生产发布通过 GitHub Actions 手动触发,选择 release_bump=patch|minor|major;如果要同时更新 App Center catalog,保持 publish_catalog=true

About

Tutti workspace app for launching Windows applications through Wine

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors