From 6b4afd2bc5b6d2ad5eeb71331633499021a44a70 Mon Sep 17 00:00:00 2001 From: marcusH Date: Wed, 22 Jul 2026 09:07:11 +0200 Subject: [PATCH] Name aICentral: README neu, sichtbare Titel umgestellt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit README trägt jetzt aICentral mit der Tagline "Get Claude Code organized" als eigene Zeile, dazu ein Hinweis auf die Unabhängigkeit von Anthropic (Claude/Claude Code als fremde Marken, rein beschreibend genannt). Sichtbare Stellen mitgezogen: Hauptfenster-Titel, Überschrift der Verwaltung, Seitentitel, Linux-Tray-Titel und der AppImage-Hinweis unter GNOME. Technische Bezeichner bleiben ai-control — Binary, Identifier, SNI-Id und der Popup-Fenstertitel, auf den KWin-Script und GNOME-Extension matchen. Außerdem im README: deploy-macos.sh und deploy-windows.ps1 ergänzt, die Installationswege pro OS beschrieben (macOS nach ~/Applications, das Build-Bundle wandert danach nach macos.noindex), Panel-Tabs englisch benannt und die Zweisprachigkeit der Oberfläche erwähnt. Co-Authored-By: Claude Opus 4.8 (1M context) --- README.md | 31 +++++++++++++++++------- index.html | 2 +- src-tauri/src/app.rs | 2 +- src-tauri/src/lib.rs | 2 +- src-tauri/src/platform/linux/tray_sni.rs | 2 +- src/App.vue | 2 +- 6 files changed, 27 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 33ce160..34f3f75 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ -# aiCentral +# aICentral -**Get Claude Code organized** — pool, project, and session management for [Claude Code](https://claude.com/claude-code), as a tray app with a built-in terminal, a draft panel, and a per-project document archive. macOS and Linux; Windows support follows. (Repository and binary name: `ai-control`.) +**Get Claude Code organized** + +Pool, project, and session management for [Claude Code](https://claude.com/claude-code) — a tray app with a built-in terminal, a draft panel, and a per-project document archive. macOS and Linux; Windows support follows. (Repository and binary name: `ai-control`.) > All code in this project was generated by Claude (Claude Code). @@ -8,7 +10,7 @@ ## Purpose -Running Claude Code with multiple accounts or credential sets means hitting the right `CLAUDE_CONFIG_DIR` (plus keychain entry) for every session. aiCentral turns that into clicks: +Running Claude Code with multiple accounts or credential sets means hitting the right `CLAUDE_CONFIG_DIR` (plus keychain entry) for every session. aICentral turns that into clicks: - **Pools** — named credential sets (OAuth login or API key) under `~/.config/ai-control/pools/`. Each pool is a self-contained Claude config directory with its own keychain entry. - **Projects** — arbitrary directories carrying their own identity in `/.ai-control/config.json` (UUID, display name, terminal settings, archive home — this file syncs with the project). The machine-local registry `~/.config/ai-control/projects.json` maps that UUID to the directory and the assigned pool; paths under home are stored as `~/…` and therefore stable across machines. @@ -31,10 +33,12 @@ The app ships an MCP stdio server (`ai-control --mcp-panel`, server key `text-pa | `show_archive` | Render the archive overview as a wiki page — documents grouped by folder, with descriptions and clickable tag links; with `tag`, that tag's page. | | `search_archive` | FTS5 full-text search over the archive (words, "phrases", prefix*); hits appear as tiles in the panel. | -The panel docks into the terminal window and can be detached into its own window. The header tab bar switches between **Befehle** (command tiles), the current **document**, **Wiki**, and **Suche** (live search, `#tag` filtering); without a configured archive home the archive tabs stay hidden. The draft's title is taken from its first heading and is editable, as is the content. Spell checking follows `spellcheckLang` (per-text override in the panel). +The panel docks into the terminal window and can be detached into its own window. The header tab bar switches between **Commands** (command tiles), the current **document**, **Wiki**, and **Search** (live search, `#tag` filtering); without a configured archive home the archive tabs stay hidden. The draft's title is taken from its first heading and is editable, as is the content. Spell checking follows `spellcheckLang` (per-text override in the panel). The archive lives in the project's `archiveHome` (set in `.ai-control/config.json`); documents are plain Markdown files with frontmatter — no database, the search index is built in-memory per query. +The interface speaks English and German across all windows; the language follows the browser locale and can be switched in the app. + ## Screenshots | Pools | Usage | @@ -113,7 +117,9 @@ Deleting a project is scoped in three stages, each preceded by a preview of the ├── kwin-script/ popup placement for KDE Wayland ├── dev.sh development mode (tauri dev) ├── build.sh release build for the current OS (see below) -└── deploy-linux.sh install the freshest local bundle (rpm/deb) +├── deploy-linux.sh install the freshest local bundle (rpm/deb) +├── deploy-macos.sh install the fresh .app into ~/Applications +└── deploy-windows.ps1 run the freshest NSIS installer ``` Process roles from one binary: @@ -138,11 +144,16 @@ Running projects are detected through their terminal processes (`pgrep` for `--t ## Development ```sh -./dev.sh # tauri dev with hot reload -./build.sh # release build for the current OS +./dev.sh # tauri dev with hot reload +./build.sh # release build for the current OS +./deploy-macos.sh # …then install it (pick the script for your OS) ``` -`build.sh` picks the bundles by platform: macOS `.app` + DMG (the bundle lands in `src-tauri/target/release/bundle/macos.noindex/`, unregistered from Launch Services so Spotlight only finds the installed copy), Linux deb + rpm, Windows NSIS. `deploy-linux.sh` installs the freshest locally built bundle via `rpm`/`dpkg`. +`build.sh` picks the bundles by platform: macOS `.app` + DMG, Linux deb + rpm, Windows NSIS. Installing is the job of the matching deploy script: + +- **`deploy-macos.sh`** — installs the fresh bundle into `~/Applications` (replacing the previous copy) and registers it with Launch Services. The build output is then moved into `bundle/macos.noindex/` and unregistered, so Spotlight and the launcher only ever find the installed copy. It refuses to run while `ai-control` is still running. +- **`deploy-linux.sh`** — installs the freshest local bundle via `rpm`/`dpkg`. +- **`deploy-windows.ps1`** — runs the freshest NSIS installer. Build dependencies on Linux: `webkit2gtk-4.1`, `libgtk-3`, `libayatana-appindicator3`, `librsvg2`, `patchelf`. @@ -179,7 +190,9 @@ Prerequisites: Rust (stable), Node.js/npm. `dev.sh`/`build.sh` expect `CARGO_HOM ## Claude and Anthropic licensing -aiCentral is pool management only — it does not change, extend, or circumvent Anthropic's licensing in any way. Using Claude Code through aiCentral is subject to the same Anthropic terms as running it directly. +aICentral is an independent open-source project, not affiliated with, sponsored by, or endorsed by Anthropic. Claude and Claude Code are trademarks of Anthropic; they are named here only to describe what this app works with. + +aICentral is pool management only — it does not change, extend, or circumvent Anthropic's licensing in any way. Using Claude Code through aICentral is subject to the same Anthropic terms as running it directly. For that reason the app stores no OAuth tokens itself: with an OAuth pool, the first session of a project on that pool goes through the regular Anthropic login (`/login`, browser, against your subscription), run by Claude Code itself. Credentials live where Claude Code puts them — in the macOS Keychain or the freedesktop Secret Service, one entry per pool. diff --git a/index.html b/index.html index fc35514..6e8b0c2 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ - ai-control + aICentral
diff --git a/src-tauri/src/app.rs b/src-tauri/src/app.rs index b7adfb8..339acc6 100644 --- a/src-tauri/src/app.rs +++ b/src-tauri/src/app.rs @@ -143,7 +143,7 @@ pub(crate) fn main_builder() -> tauri::Builder { // Fenster im Code statt in tauri.conf.json, damit der Terminal-Prozess // (gleiches Binary, gleiche Config) kein main-Fenster anlegt. let main_win = tauri::WebviewWindowBuilder::new(app, "main", tauri::WebviewUrl::default()) - .title("ai-control") + .title("aICentral") .inner_size(800.0, 600.0) // Fenster-Icon (_NET_WM_ICON) — deckt X11-DEs wie XFCE direkt ab, // unabhängig von der .desktop-Zuordnung; auf Windows das Titel-/Taskbar-Icon. diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 91b8b3e..fde5d0a 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -51,7 +51,7 @@ pub fn run() { if std::env::var_os("APPIMAGE").is_some() && platform::is_gnome() { rfd::MessageDialog::new() .set_level(rfd::MessageLevel::Warning) - .set_title("ai-control") + .set_title("aICentral") .set_description( "Die AppImage-Fassung wird unter GNOME nicht unterstützt: Das Tray-Icon \ braucht eine GNOME-Shell-Extension, die nur das deb-/rpm-Paket \ diff --git a/src-tauri/src/platform/linux/tray_sni.rs b/src-tauri/src/platform/linux/tray_sni.rs index 9657b5e..c85d606 100644 --- a/src-tauri/src/platform/linux/tray_sni.rs +++ b/src-tauri/src/platform/linux/tray_sni.rs @@ -16,7 +16,7 @@ impl ksni::Tray for AiControlTray { "ai-control".into() } fn title(&self) -> String { - "ai-control".into() + "aICentral".into() } fn icon_pixmap(&self) -> Vec { self.icon.clone() diff --git a/src/App.vue b/src/App.vue index 5ea462d..60824c7 100644 --- a/src/App.vue +++ b/src/App.vue @@ -51,7 +51,7 @@ async function toggleAutostart() {