diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 9e8bc1b..ccd72a3 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -42,10 +42,10 @@ jobs:
run: dotnet build src/Moltbot.Tray.WinUI -c Debug
- name: Build Tests
- run: dotnet build tests/Moltbot.Shared.Tests -c Debug
+ run: dotnet build tests/OpenClaw.Shared.Tests -c Debug
- name: Run Tests
- run: dotnet test tests/Moltbot.Shared.Tests --no-build -c Debug --verbosity normal
+ run: dotnet test tests/OpenClaw.Shared.Tests --no-build -c Debug --verbosity normal
outputs:
semVer: ${{ steps.gitversion.outputs.semVer }}
@@ -167,8 +167,8 @@ jobs:
# Create ZIP files for Updatum auto-update (needs "win-x64" in filename)
- name: Create Release ZIPs
run: |
- Compress-Archive -Path artifacts/tray-win-x64/* -DestinationPath MoltbotTray-${{ needs.test.outputs.majorMinorPatch }}-win-x64.zip
- Compress-Archive -Path artifacts/tray-win-arm64/* -DestinationPath MoltbotTray-${{ needs.test.outputs.majorMinorPatch }}-win-arm64.zip
+ Compress-Archive -Path artifacts/tray-win-x64/* -DestinationPath OpenClawTray-${{ needs.test.outputs.majorMinorPatch }}-win-x64.zip
+ Compress-Archive -Path artifacts/tray-win-arm64/* -DestinationPath OpenClawTray-${{ needs.test.outputs.majorMinorPatch }}-win-arm64.zip
# Inno Setup installer for x64
- name: Install Inno Setup
@@ -225,18 +225,18 @@ jobs:
with:
generate_release_notes: true
files: |
- Output/MoltbotTray-Setup-x64.exe
- Output/MoltbotTray-Setup-arm64.exe
- MoltbotTray-${{ needs.test.outputs.majorMinorPatch }}-win-x64.zip
- MoltbotTray-${{ needs.test.outputs.majorMinorPatch }}-win-arm64.zip
+ Output/OpenClawTray-Setup-x64.exe
+ Output/OpenClawTray-Setup-arm64.exe
+ OpenClawTray-${{ needs.test.outputs.majorMinorPatch }}-win-x64.zip
+ OpenClawTray-${{ needs.test.outputs.majorMinorPatch }}-win-arm64.zip
body: |
## Moltbot Windows Hub ${{ github.ref_name }}
### Downloads
- - **Installer (x64)**: `MoltbotTray-Setup-x64.exe` - Intel/AMD 64-bit
- - **Installer (ARM64)**: `MoltbotTray-Setup-arm64.exe` - Windows on ARM (Surface, etc.)
- - **Portable x64**: `MoltbotTray-${{ needs.test.outputs.majorMinorPatch }}-win-x64.zip`
- - **Portable ARM64**: `MoltbotTray-${{ needs.test.outputs.majorMinorPatch }}-win-arm64.zip`
+ - **Installer (x64)**: `OpenClawTray-Setup-x64.exe` - Intel/AMD 64-bit
+ - **Installer (ARM64)**: `OpenClawTray-Setup-arm64.exe` - Windows on ARM (Surface, etc.)
+ - **Portable x64**: `OpenClawTray-${{ needs.test.outputs.majorMinorPatch }}-win-x64.zip`
+ - **Portable ARM64**: `OpenClawTray-${{ needs.test.outputs.majorMinorPatch }}-win-arm64.zip`
### Features
- ๐ฆ System tray integration with gateway status
@@ -247,7 +247,7 @@ jobs:
### Requirements
- Windows 10 version 1903 or later
- [WebView2 Runtime](https://developer.microsoft.com/en-us/microsoft-edge/webview2/)
- - Moltbot gateway running locally
+ - OpenClaw gateway running locally
- PowerToys (for Command Palette extension)
### Quick Start
diff --git a/CODE_REVIEW.md b/CODE_REVIEW.md
index e4d11eb..eafc8e6 100644
--- a/CODE_REVIEW.md
+++ b/CODE_REVIEW.md
@@ -1,15 +1,15 @@
-# Code Review - Moltbot Windows Hub
+# Code Review - OpenClaw Windows Hub
## Overview
-This document provides a comprehensive code review of the Moltbot Windows Hub repository, focusing on correctness, security, and best practices.
+This document provides a comprehensive code review of the OpenClaw Windows Hub repository, focusing on correctness, security, and best practices.
## Executive Summary
โ
**Overall Assessment: Good** - The codebase is well-structured with proper separation of concerns, event-driven architecture, and correct async/await patterns. Some potential issues were identified around error handling, reconnection logic, and edge cases.
## Project Structure
-- **Moltbot.Shared**: WebSocket gateway client and data models (โ
Cross-platform compatible)
-- **Moltbot.Tray**: Windows system tray application (โ ๏ธ Windows-only)
-- **Moltbot.CommandPalette**: PowerToys extension (โ ๏ธ Windows-only)
+- **OpenClaw.Shared**: WebSocket gateway client and data models (โ
Cross-platform compatible)
+- **OpenClaw.Tray**: Windows system tray application (โ ๏ธ Windows-only)
+- **OpenClaw.CommandPalette**: PowerToys extension (โ ๏ธ Windows-only)
## Code Quality Analysis
@@ -282,7 +282,7 @@ All display text generation in Models.cs is correct:
### โ ๏ธ Cross-Platform Compatibility
-**Moltbot.Shared** is mostly cross-platform, but:
+**OpenClaw.Shared** is mostly cross-platform, but:
- `SessionInfo.ShortKey` uses `Path.GetFileName()` which behaves differently on Windows vs Linux
- On Linux, backslashes in paths are NOT treated as separators
- **Recommendation**: Explicitly replace backslashes before using `Path.GetFileName()`
@@ -349,7 +349,7 @@ if (Key.Contains('/') || Key.Contains('\\'))
## Conclusion
-The Moltbot Windows Hub codebase demonstrates good software engineering practices with proper async/await usage, event-driven architecture, and resource management. The main areas for improvement are:
+The OpenClaw Windows Hub codebase demonstrates good software engineering practices with proper async/await usage, event-driven architecture, and resource management. The main areas for improvement are:
1. **Testing**: Now addressed with 88 unit tests covering core functionality
2. **Error Handling**: Could be more consistent
diff --git a/README.md b/README.md
index 24e740d..e61b07a 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
-# ๐ฆ Moltbot Windows Hub
+# ๐ฆ OpenClaw Windows Hub
-A Windows companion suite for [Moltbot](https://moltbot.com) - the AI-powered personal assistant.
+A Windows companion suite for [OpenClaw](https://moltbot.com) - the AI-powered personal assistant.
*Made with ๐ฆ love by Scott Hanselman and Molty*
@@ -14,9 +14,9 @@ This monorepo contains three projects:
| Project | Description |
|---------|-------------|
-| **Moltbot.Tray** | System tray application for quick access to Moltbot |
-| **Moltbot.Shared** | Shared gateway client library |
-| **Moltbot.CommandPalette** | PowerToys Command Palette extension |
+| **OpenClaw.Tray** | System tray application for quick access to OpenClaw |
+| **OpenClaw.Shared** | Shared gateway client library |
+| **OpenClaw.CommandPalette** | PowerToys Command Palette extension |
## ๐ Quick Start
@@ -32,12 +32,12 @@ dotnet build
### Run Tray App
```bash
-dotnet run --project src/Moltbot.Tray
+dotnet run --project src/OpenClaw.Tray
```
-## ๐ฆ Moltbot.Tray (Molty)
+## ๐ฆ OpenClaw.Tray (Molty)
-Modern Windows 11-style system tray companion that connects to your local Moltbot gateway.
+Modern Windows 11-style system tray companion that connects to your local OpenClaw gateway.
### Features
- ๐ฆ **Lobster branding** - Pixel-art lobster tray icon with status colors
@@ -90,28 +90,28 @@ These features are available in Windows but not in the Mac app:
| Toast notifications | Clickable Windows notifications |
| Channel control | Start/stop Telegram & WhatsApp |
| Modern flyout menu | Windows 11-style with dark/light mode |
-| Deep links | `moltbot://` URL scheme with IPC |
+| Deep links | `openclaw://` URL scheme with IPC |
| First-run welcome | Guided onboarding for new users |
| PowerToys integration | Command Palette extension |
### Deep Links
-Moltbot registers the `moltbot://` URL scheme for automation and integration:
+OpenClaw registers the `openclaw://` URL scheme for automation and integration:
| Link | Description |
|------|-------------|
-| `moltbot://settings` | Open Settings dialog |
-| `moltbot://chat` | Open Web Chat window |
-| `moltbot://dashboard` | Open Dashboard in browser |
-| `moltbot://dashboard/sessions` | Open specific dashboard page |
-| `moltbot://send?message=Hello` | Open Quick Send with pre-filled text |
-| `moltbot://agent?message=Hello` | Send message directly (with confirmation) |
+| `openclaw://settings` | Open Settings dialog |
+| `openclaw://chat` | Open Web Chat window |
+| `openclaw://dashboard` | Open Dashboard in browser |
+| `openclaw://dashboard/sessions` | Open specific dashboard page |
+| `openclaw://send?message=Hello` | Open Quick Send with pre-filled text |
+| `openclaw://agent?message=Hello` | Send message directly (with confirmation) |
Deep links work even when Molty is already running - they're forwarded via IPC.
-## ๐ฆ Moltbot.CommandPalette
+## ๐ฆ OpenClaw.CommandPalette
-PowerToys Command Palette extension for quick Moltbot access.
+PowerToys Command Palette extension for quick OpenClaw access.
### Commands
- **๐ฆ Open Dashboard** - Launch web dashboard
@@ -125,13 +125,13 @@ PowerToys Command Palette extension for quick Moltbot access.
1. Build the solution in Release mode
2. Deploy the MSIX package via Visual Studio
3. Open Command Palette (Win+Alt+Space)
-4. Type "Moltbot" to see commands
+4. Type "OpenClaw" to see commands
-## ๐ฆ Moltbot.Shared
+## ๐ฆ OpenClaw.Shared
Shared library containing:
-- `MoltbotGatewayClient` - WebSocket client for gateway protocol
-- `IMoltbotLogger` - Logging interface
+- `OpenClawGatewayClient` - WebSocket client for gateway protocol
+- `IOpenClawLogger` - Logging interface
- Data models (SessionInfo, ChannelHealth, etc.)
- Channel control (start/stop channels via gateway)
@@ -141,9 +141,9 @@ Shared library containing:
```
moltbot-windows-hub/
โโโ src/
-โ โโโ Moltbot.Shared/ # Shared gateway library
-โ โโโ Moltbot.Tray/ # System tray app
-โ โโโ Moltbot.CommandPalette/ # PowerToys extension
+โ โโโ OpenClaw.Shared/ # Shared gateway library
+โ โโโ OpenClaw.Tray/ # System tray app
+โ โโโ OpenClaw.CommandPalette/ # PowerToys extension
โโโ docs/
โ โโโ molty1.png # Screenshot
โโโ moltbot-windows-hub.sln
@@ -155,8 +155,8 @@ moltbot-windows-hub/
### Configuration
Settings are stored in:
-- Settings: `%APPDATA%\MoltbotTray\settings.json`
-- Logs: `%LOCALAPPDATA%\MoltbotTray\moltbot-tray.log`
+- Settings: `%APPDATA%\OpenClawTray\settings.json`
+- Logs: `%LOCALAPPDATA%\OpenClawTray\openclaw-tray.log`
Default gateway: `ws://localhost:18789`
@@ -170,3 +170,7 @@ On first run without a token, Molty displays a welcome dialog that:
## License
MIT License - see [LICENSE](LICENSE)
+
+---
+
+*Formerly known as Moltbot, formerly known as Clawdbot*
diff --git a/installer.iss b/installer.iss
index 310d1c7..cfa12ae 100644
--- a/installer.iss
+++ b/installer.iss
@@ -1,8 +1,8 @@
-; Moltbot Tray Inno Setup Script (WinUI version)
-#define MyAppName "Moltbot Tray"
+; OpenClaw Tray Inno Setup Script (WinUI version)
+#define MyAppName "OpenClaw Tray"
#define MyAppPublisher "Scott Hanselman"
#define MyAppURL "https://github.com/shanselman/moltbot-windows-hub"
-#define MyAppExeName "Moltbot.Tray.WinUI.exe"
+#define MyAppExeName "OpenClaw.Tray.WinUI.exe"
; MyAppArch should be passed via /DMyAppArch=x64 or /DMyAppArch=arm64
#ifndef MyAppArch
@@ -17,15 +17,15 @@ AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL=https://github.com/shanselman/moltbot-windows-hub/issues
AppUpdatesURL=https://github.com/shanselman/moltbot-windows-hub/releases
-DefaultDirName={localappdata}\MoltbotTray
+DefaultDirName={localappdata}\OpenClawTray
DefaultGroupName={#MyAppName}
DisableProgramGroupPage=yes
-OutputBaseFilename=MoltbotTray-Setup-{#MyAppArch}
+OutputBaseFilename=OpenClawTray-Setup-{#MyAppArch}
Compression=lzma
SolidCompression=yes
WizardStyle=modern
PrivilegesRequired=lowest
-SetupIconFile=src\Moltbot.Tray.WinUI\Assets\moltbot.ico
+SetupIconFile=src\OpenClaw.Tray.WinUI\Assets\openclaw.ico
UninstallDisplayIcon={app}\{#MyAppExeName}
#if MyAppArch == "arm64"
ArchitecturesInstallIn64BitMode=arm64
@@ -45,7 +45,7 @@ Name: "english"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
-Name: "startupicon"; Description: "Start Moltbot Tray when Windows starts"; GroupDescription: "Startup:"; Flags: unchecked
+Name: "startupicon"; Description: "Start OpenClaw Tray when Windows starts"; GroupDescription: "Startup:"; Flags: unchecked
Name: "cmdpalette"; Description: "Install PowerToys Command Palette extension"; GroupDescription: "Integrations:"; Flags: unchecked
[Files]
@@ -67,4 +67,4 @@ Filename: "powershell.exe"; Parameters: "-ExecutionPolicy Bypass -Command ""Add-
[UninstallRun]
; Unregister Command Palette extension on uninstall
-Filename: "powershell.exe"; Parameters: "-ExecutionPolicy Bypass -Command ""Get-AppxPackage -Name '*Moltbot*' | Remove-AppxPackage"""; Flags: runhidden
+Filename: "powershell.exe"; Parameters: "-ExecutionPolicy Bypass -Command ""Get-AppxPackage -Name '*OpenClaw*' | Remove-AppxPackage"""; Flags: runhidden
diff --git a/moltbot-windows-hub.slnx b/moltbot-windows-hub.slnx
index fd6a737..a4c90b8 100644
--- a/moltbot-windows-hub.slnx
+++ b/moltbot-windows-hub.slnx
@@ -1,10 +1,10 @@
-
+
-
-
-
+
+
+
diff --git a/src/Moltbot.CommandPalette/Assets/LockScreenLogo.scale-200.png b/src/OpenClaw.CommandPalette/Assets/LockScreenLogo.scale-200.png
similarity index 100%
rename from src/Moltbot.CommandPalette/Assets/LockScreenLogo.scale-200.png
rename to src/OpenClaw.CommandPalette/Assets/LockScreenLogo.scale-200.png
diff --git a/src/Moltbot.CommandPalette/Assets/SplashScreen.scale-200.png b/src/OpenClaw.CommandPalette/Assets/SplashScreen.scale-200.png
similarity index 100%
rename from src/Moltbot.CommandPalette/Assets/SplashScreen.scale-200.png
rename to src/OpenClaw.CommandPalette/Assets/SplashScreen.scale-200.png
diff --git a/src/Moltbot.CommandPalette/Assets/Square150x150Logo.scale-200.png b/src/OpenClaw.CommandPalette/Assets/Square150x150Logo.scale-200.png
similarity index 100%
rename from src/Moltbot.CommandPalette/Assets/Square150x150Logo.scale-200.png
rename to src/OpenClaw.CommandPalette/Assets/Square150x150Logo.scale-200.png
diff --git a/src/Moltbot.CommandPalette/Assets/Square44x44Logo.scale-200.png b/src/OpenClaw.CommandPalette/Assets/Square44x44Logo.scale-200.png
similarity index 100%
rename from src/Moltbot.CommandPalette/Assets/Square44x44Logo.scale-200.png
rename to src/OpenClaw.CommandPalette/Assets/Square44x44Logo.scale-200.png
diff --git a/src/Moltbot.CommandPalette/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/src/OpenClaw.CommandPalette/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
similarity index 100%
rename from src/Moltbot.CommandPalette/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
rename to src/OpenClaw.CommandPalette/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
diff --git a/src/Moltbot.CommandPalette/Assets/StoreLogo.png b/src/OpenClaw.CommandPalette/Assets/StoreLogo.png
similarity index 100%
rename from src/Moltbot.CommandPalette/Assets/StoreLogo.png
rename to src/OpenClaw.CommandPalette/Assets/StoreLogo.png
diff --git a/src/Moltbot.CommandPalette/Assets/Wide310x150Logo.scale-200.png b/src/OpenClaw.CommandPalette/Assets/Wide310x150Logo.scale-200.png
similarity index 100%
rename from src/Moltbot.CommandPalette/Assets/Wide310x150Logo.scale-200.png
rename to src/OpenClaw.CommandPalette/Assets/Wide310x150Logo.scale-200.png
diff --git a/src/Moltbot.CommandPalette/Directory.Build.props b/src/OpenClaw.CommandPalette/Directory.Build.props
similarity index 100%
rename from src/Moltbot.CommandPalette/Directory.Build.props
rename to src/OpenClaw.CommandPalette/Directory.Build.props
diff --git a/src/Moltbot.CommandPalette/Directory.Packages.props b/src/OpenClaw.CommandPalette/Directory.Packages.props
similarity index 100%
rename from src/Moltbot.CommandPalette/Directory.Packages.props
rename to src/OpenClaw.CommandPalette/Directory.Packages.props
diff --git a/src/Moltbot.CommandPalette/Moltbot.CommandPalette.csproj b/src/OpenClaw.CommandPalette/OpenClaw.CommandPalette.csproj
similarity index 98%
rename from src/Moltbot.CommandPalette/Moltbot.CommandPalette.csproj
rename to src/OpenClaw.CommandPalette/OpenClaw.CommandPalette.csproj
index 2d64491..6fa56c2 100644
--- a/src/Moltbot.CommandPalette/Moltbot.CommandPalette.csproj
+++ b/src/OpenClaw.CommandPalette/OpenClaw.CommandPalette.csproj
@@ -50,7 +50,7 @@
-
+
- Moltbot
+ OpenClaw
A Lone Developer
Assets\StoreLogo.png
@@ -35,8 +35,8 @@
Executable="$targetnametoken$.exe"
EntryPoint="$targetentrypoint$">
-
-
+
+
@@ -56,8 +56,8 @@
+ DisplayName="OpenClaw"
+ Description="OpenClaw">
diff --git a/src/Moltbot.CommandPalette/Pages/MoltbotPage.cs b/src/OpenClaw.CommandPalette/Pages/OpenClawPage.cs
similarity index 79%
rename from src/Moltbot.CommandPalette/Pages/MoltbotPage.cs
rename to src/OpenClaw.CommandPalette/Pages/OpenClawPage.cs
index 165b98f..9b9c47c 100644
--- a/src/Moltbot.CommandPalette/Pages/MoltbotPage.cs
+++ b/src/OpenClaw.CommandPalette/Pages/OpenClawPage.cs
@@ -7,9 +7,9 @@ using Microsoft.CommandPalette.Extensions.Toolkit;
namespace Moltbot;
-internal sealed partial class MoltbotPage : ListPage
+internal sealed partial class OpenClawPage : ListPage
{
- public MoltbotPage()
+ public OpenClawPage()
{
Icon = IconHelpers.FromRelativePath("Assets\\StoreLogo.png");
Title = "Moltbot";
@@ -24,17 +24,17 @@ internal sealed partial class MoltbotPage : ListPage
Title = "๐ฆ Open Dashboard",
Subtitle = "Open Moltbot web dashboard"
},
- new ListItem(new OpenUrlCommand("moltbot://chat"))
+ new ListItem(new OpenUrlCommand("openclaw://chat"))
{
Title = "๐ฌ Web Chat",
Subtitle = "Open the Moltbot chat window"
},
- new ListItem(new OpenUrlCommand("moltbot://send"))
+ new ListItem(new OpenUrlCommand("openclaw://send"))
{
Title = "๐ Quick Send",
Subtitle = "Send a message to Moltbot"
},
- new ListItem(new OpenUrlCommand("moltbot://settings"))
+ new ListItem(new OpenUrlCommand("openclaw://settings"))
{
Title = "โ๏ธ Settings",
Subtitle = "Configure Moltbot Tray"
diff --git a/src/Moltbot.CommandPalette/Program.cs b/src/OpenClaw.CommandPalette/Program.cs
similarity index 100%
rename from src/Moltbot.CommandPalette/Program.cs
rename to src/OpenClaw.CommandPalette/Program.cs
diff --git a/src/Moltbot.CommandPalette/Properties/launchSettings.json b/src/OpenClaw.CommandPalette/Properties/launchSettings.json
similarity index 69%
rename from src/Moltbot.CommandPalette/Properties/launchSettings.json
rename to src/OpenClaw.CommandPalette/Properties/launchSettings.json
index 219d366..995b591 100644
--- a/src/Moltbot.CommandPalette/Properties/launchSettings.json
+++ b/src/OpenClaw.CommandPalette/Properties/launchSettings.json
@@ -1,10 +1,10 @@
{
"profiles": {
- "Moltbot (Package)": {
+ "OpenClaw (Package)": {
"commandName": "MsixPackage",
"doNotLaunchApp": true
},
- "Moltbot (Unpackaged)": {
+ "OpenClaw (Unpackaged)": {
"commandName": "Project"
}
}
diff --git a/src/Moltbot.CommandPalette/app.manifest b/src/OpenClaw.CommandPalette/app.manifest
similarity index 100%
rename from src/Moltbot.CommandPalette/app.manifest
rename to src/OpenClaw.CommandPalette/app.manifest
diff --git a/src/Moltbot.CommandPalette/nuget.config b/src/OpenClaw.CommandPalette/nuget.config
similarity index 100%
rename from src/Moltbot.CommandPalette/nuget.config
rename to src/OpenClaw.CommandPalette/nuget.config
diff --git a/src/Moltbot.Shared/IMoltbotLogger.cs b/src/OpenClaw.Shared/IOpenClawLogger.cs
similarity index 86%
rename from src/Moltbot.Shared/IMoltbotLogger.cs
rename to src/OpenClaw.Shared/IOpenClawLogger.cs
index 371e0ab..5eeb36c 100644
--- a/src/Moltbot.Shared/IMoltbotLogger.cs
+++ b/src/OpenClaw.Shared/IOpenClawLogger.cs
@@ -1,10 +1,10 @@
-namespace Moltbot.Shared;
+namespace OpenClaw.Shared;
///
/// Simple logger interface for the gateway client.
/// Implementations can write to file, console, debug output, etc.
///
-public interface IMoltbotLogger
+public interface IOpenClawLogger
{
void Info(string message);
void Warn(string message);
@@ -14,7 +14,7 @@ public interface IMoltbotLogger
///
/// Default no-op logger for when logging isn't needed.
///
-public class NullLogger : IMoltbotLogger
+public class NullLogger : IOpenClawLogger
{
public static readonly NullLogger Instance = new();
public void Info(string message) { }
@@ -25,7 +25,7 @@ public class NullLogger : IMoltbotLogger
///
/// Console logger for simple debugging.
///
-public class ConsoleLogger : IMoltbotLogger
+public class ConsoleLogger : IOpenClawLogger
{
public void Info(string message) => Console.WriteLine($"[INFO] {message}");
public void Warn(string message) => Console.WriteLine($"[WARN] {message}");
diff --git a/src/Moltbot.Shared/Models.cs b/src/OpenClaw.Shared/Models.cs
similarity index 98%
rename from src/Moltbot.Shared/Models.cs
rename to src/OpenClaw.Shared/Models.cs
index d7ea7cd..3af642c 100644
--- a/src/Moltbot.Shared/Models.cs
+++ b/src/OpenClaw.Shared/Models.cs
@@ -1,4 +1,4 @@
-namespace Moltbot.Shared;
+namespace OpenClaw.Shared;
public enum ConnectionStatus
{
@@ -50,7 +50,7 @@ public class AgentActivity
: $"{(IsMain ? "Main" : "Sub")} ยท {Glyph} {Label}";
}
-public class MoltbotNotification
+public class OpenClawNotification
{
public string Title { get; set; } = "";
public string Message { get; set; } = "";
diff --git a/src/Moltbot.Shared/Moltbot.Shared.csproj b/src/OpenClaw.Shared/OpenClaw.Shared.csproj
similarity index 100%
rename from src/Moltbot.Shared/Moltbot.Shared.csproj
rename to src/OpenClaw.Shared/OpenClaw.Shared.csproj
diff --git a/src/Moltbot.Shared/MoltbotGatewayClient.cs b/src/OpenClaw.Shared/OpenClawGatewayClient.cs
similarity index 98%
rename from src/Moltbot.Shared/MoltbotGatewayClient.cs
rename to src/OpenClaw.Shared/OpenClawGatewayClient.cs
index 4222be9..3575d4c 100644
--- a/src/Moltbot.Shared/MoltbotGatewayClient.cs
+++ b/src/OpenClaw.Shared/OpenClawGatewayClient.cs
@@ -7,14 +7,14 @@ using System.Text.Json;
using System.Threading;
using System.Threading.Tasks;
-namespace Moltbot.Shared;
+namespace OpenClaw.Shared;
-public class MoltbotGatewayClient : IDisposable
+public class OpenClawGatewayClient : IDisposable
{
private ClientWebSocket? _webSocket;
private readonly string _gatewayUrl;
private readonly string _token;
- private readonly IMoltbotLogger _logger;
+ private readonly IOpenClawLogger _logger;
private CancellationTokenSource _cts;
private bool _disposed;
private int _reconnectAttempts;
@@ -26,13 +26,13 @@ public class MoltbotGatewayClient : IDisposable
// Events
public event EventHandler? StatusChanged;
- public event EventHandler? NotificationReceived;
+ public event EventHandler? NotificationReceived;
public event EventHandler? ActivityChanged;
public event EventHandler? ChannelHealthUpdated;
public event EventHandler? SessionsUpdated;
public event EventHandler? UsageUpdated;
- public MoltbotGatewayClient(string gatewayUrl, string token, IMoltbotLogger? logger = null)
+ public OpenClawGatewayClient(string gatewayUrl, string token, IOpenClawLogger? logger = null)
{
_gatewayUrl = gatewayUrl;
_token = token;
@@ -840,7 +840,7 @@ public class MoltbotGatewayClient : IDisposable
private void EmitNotification(string text)
{
var (title, type) = ClassifyNotification(text);
- NotificationReceived?.Invoke(this, new MoltbotNotification
+ NotificationReceived?.Invoke(this, new OpenClawNotification
{
Title = title,
Message = text.Length > 200 ? text[..200] + "โฆ" : text,
diff --git a/src/Moltbot.Tray.WinUI/App.xaml b/src/OpenClaw.Tray.WinUI/App.xaml
similarity index 100%
rename from src/Moltbot.Tray.WinUI/App.xaml
rename to src/OpenClaw.Tray.WinUI/App.xaml
diff --git a/src/Moltbot.Tray.WinUI/App.xaml.cs b/src/OpenClaw.Tray.WinUI/App.xaml.cs
similarity index 98%
rename from src/Moltbot.Tray.WinUI/App.xaml.cs
rename to src/OpenClaw.Tray.WinUI/App.xaml.cs
index 71b81c6..ebfa7a1 100644
--- a/src/Moltbot.Tray.WinUI/App.xaml.cs
+++ b/src/OpenClaw.Tray.WinUI/App.xaml.cs
@@ -1,11 +1,11 @@
using Microsoft.Toolkit.Uwp.Notifications;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
-using Moltbot.Shared;
-using MoltbotTray.Dialogs;
-using MoltbotTray.Helpers;
-using MoltbotTray.Services;
-using MoltbotTray.Windows;
+using OpenClaw.Shared;
+using OpenClawTray.Dialogs;
+using OpenClawTray.Helpers;
+using OpenClawTray.Services;
+using OpenClawTray.Windows;
using System;
using System.Collections.Generic;
using System.Diagnostics;
@@ -31,7 +31,7 @@ public partial class App : Application
};
private TrayIcon? _trayIcon;
- private MoltbotGatewayClient? _gatewayClient;
+ private OpenClawGatewayClient? _gatewayClient;
private SettingsManager? _settings;
private GlobalHotkeyService? _globalHotkey;
private System.Timers.Timer? _healthCheckTimer;
@@ -63,7 +63,7 @@ public partial class App : Application
private string[]? _startupArgs;
private static readonly string CrashLogPath = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
- "MoltbotTray", "crash.log");
+ "OpenClawTray", "crash.log");
public App()
{
@@ -112,11 +112,11 @@ public partial class App : Application
_dispatcherQueue = Microsoft.UI.Dispatching.DispatcherQueue.GetForCurrentThread();
// Single instance check - keep mutex alive for app lifetime
- _mutex = new Mutex(true, "MoltbotTray", out bool createdNew);
+ _mutex = new Mutex(true, "OpenClawTray", out bool createdNew);
if (!createdNew)
{
// Forward deep link args to running instance
- if (_startupArgs.Length > 1 && _startupArgs[1].StartsWith("moltbot://", StringComparison.OrdinalIgnoreCase))
+ if (_startupArgs.Length > 1 && _startupArgs[1].StartsWith("openclaw://", StringComparison.OrdinalIgnoreCase))
{
SendDeepLinkToRunningInstance(_startupArgs[1]);
}
@@ -168,7 +168,7 @@ public partial class App : Application
}
// Process startup deep link
- if (_startupArgs.Length > 1 && _startupArgs[1].StartsWith("moltbot://", StringComparison.OrdinalIgnoreCase))
+ if (_startupArgs.Length > 1 && _startupArgs[1].StartsWith("openclaw://", StringComparison.OrdinalIgnoreCase))
{
HandleDeepLink(_startupArgs[1]);
}
@@ -545,7 +545,7 @@ public partial class App : Application
// Unsubscribe from old client if exists
UnsubscribeGatewayEvents();
- _gatewayClient = new MoltbotGatewayClient(_settings.GatewayUrl, _settings.Token, new AppLogger());
+ _gatewayClient = new OpenClawGatewayClient(_settings.GatewayUrl, _settings.Token, new AppLogger());
_gatewayClient.StatusChanged += OnConnectionStatusChanged;
_gatewayClient.ActivityChanged += OnActivityChanged;
_gatewayClient.NotificationReceived += OnNotificationReceived;
@@ -628,7 +628,7 @@ public partial class App : Application
_lastUsage = usage;
}
- private void OnNotificationReceived(object? sender, MoltbotNotification notification)
+ private void OnNotificationReceived(object? sender, OpenClawNotification notification)
{
if (_settings?.ShowNotifications != true) return;
if (!ShouldShowNotification(notification)) return;
@@ -656,7 +656,7 @@ public partial class App : Application
}
}
- private bool ShouldShowNotification(MoltbotNotification notification)
+ private bool ShouldShowNotification(OpenClawNotification notification)
{
if (_settings == null) return true;
@@ -1144,7 +1144,7 @@ public partial class App : Application
Microsoft.UI.Dispatching.DispatcherQueue.GetForCurrentThread();
}
-internal class AppLogger : IMoltbotLogger
+internal class AppLogger : IOpenClawLogger
{
public void Info(string message) => Logger.Info(message);
public void Warn(string message) => Logger.Warn(message);
diff --git a/src/Moltbot.Tray.WinUI/Assets/moltbot.ico b/src/OpenClaw.Tray.WinUI/Assets/openclaw.ico
similarity index 100%
rename from src/Moltbot.Tray.WinUI/Assets/moltbot.ico
rename to src/OpenClaw.Tray.WinUI/Assets/openclaw.ico
diff --git a/src/Moltbot.Tray.WinUI/Dialogs/DownloadProgressDialog.cs b/src/OpenClaw.Tray.WinUI/Dialogs/DownloadProgressDialog.cs
similarity index 96%
rename from src/Moltbot.Tray.WinUI/Dialogs/DownloadProgressDialog.cs
rename to src/OpenClaw.Tray.WinUI/Dialogs/DownloadProgressDialog.cs
index 1315dc4..1839afd 100644
--- a/src/Moltbot.Tray.WinUI/Dialogs/DownloadProgressDialog.cs
+++ b/src/OpenClaw.Tray.WinUI/Dialogs/DownloadProgressDialog.cs
@@ -3,7 +3,7 @@ using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Media;
using Updatum;
-namespace MoltbotTray.Dialogs;
+namespace OpenClawTray.Dialogs;
public sealed class DownloadProgressDialog
{
diff --git a/src/Moltbot.Tray.WinUI/Dialogs/QuickSendDialog.cs b/src/OpenClaw.Tray.WinUI/Dialogs/QuickSendDialog.cs
similarity index 93%
rename from src/Moltbot.Tray.WinUI/Dialogs/QuickSendDialog.cs
rename to src/OpenClaw.Tray.WinUI/Dialogs/QuickSendDialog.cs
index fe0e23a..dca09b7 100644
--- a/src/Moltbot.Tray.WinUI/Dialogs/QuickSendDialog.cs
+++ b/src/OpenClaw.Tray.WinUI/Dialogs/QuickSendDialog.cs
@@ -2,27 +2,27 @@ using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Input;
using Microsoft.UI.Xaml.Media;
-using Moltbot.Shared;
-using MoltbotTray.Helpers;
-using MoltbotTray.Services;
+using OpenClaw.Shared;
+using OpenClawTray.Helpers;
+using OpenClawTray.Services;
using System;
using System.Threading.Tasks;
using WinUIEx;
-namespace MoltbotTray.Dialogs;
+namespace OpenClawTray.Dialogs;
///
/// Quick send dialog for sending messages to Moltbot.
///
public sealed class QuickSendDialog : WindowEx
{
- private readonly MoltbotGatewayClient _client;
+ private readonly OpenClawGatewayClient _client;
private readonly TextBox _messageTextBox;
private readonly Button _sendButton;
private readonly TextBlock _statusText;
private bool _isSending;
- public QuickSendDialog(MoltbotGatewayClient client, string? prefillMessage = null)
+ public QuickSendDialog(OpenClawGatewayClient client, string? prefillMessage = null)
{
_client = client;
diff --git a/src/Moltbot.Tray.WinUI/Dialogs/UpdateDialog.cs b/src/OpenClaw.Tray.WinUI/Dialogs/UpdateDialog.cs
similarity index 98%
rename from src/Moltbot.Tray.WinUI/Dialogs/UpdateDialog.cs
rename to src/OpenClaw.Tray.WinUI/Dialogs/UpdateDialog.cs
index 6274d56..8782eed 100644
--- a/src/Moltbot.Tray.WinUI/Dialogs/UpdateDialog.cs
+++ b/src/OpenClaw.Tray.WinUI/Dialogs/UpdateDialog.cs
@@ -4,7 +4,7 @@ using Microsoft.UI.Xaml.Media;
using System;
using System.Threading.Tasks;
-namespace MoltbotTray.Dialogs;
+namespace OpenClawTray.Dialogs;
public enum UpdateDialogResult
{
diff --git a/src/Moltbot.Tray.WinUI/Dialogs/WelcomeDialog.cs b/src/OpenClaw.Tray.WinUI/Dialogs/WelcomeDialog.cs
similarity index 99%
rename from src/Moltbot.Tray.WinUI/Dialogs/WelcomeDialog.cs
rename to src/OpenClaw.Tray.WinUI/Dialogs/WelcomeDialog.cs
index a04d480..e938e24 100644
--- a/src/Moltbot.Tray.WinUI/Dialogs/WelcomeDialog.cs
+++ b/src/OpenClaw.Tray.WinUI/Dialogs/WelcomeDialog.cs
@@ -5,7 +5,7 @@ using System;
using System.Threading.Tasks;
using WinUIEx;
-namespace MoltbotTray.Dialogs;
+namespace OpenClawTray.Dialogs;
///
/// First-run welcome dialog for new users.
diff --git a/src/Moltbot.Tray.WinUI/Helpers/BackdropHelper.cs b/src/OpenClaw.Tray.WinUI/Helpers/BackdropHelper.cs
similarity index 99%
rename from src/Moltbot.Tray.WinUI/Helpers/BackdropHelper.cs
rename to src/OpenClaw.Tray.WinUI/Helpers/BackdropHelper.cs
index 102876c..22d02a0 100644
--- a/src/Moltbot.Tray.WinUI/Helpers/BackdropHelper.cs
+++ b/src/OpenClaw.Tray.WinUI/Helpers/BackdropHelper.cs
@@ -3,7 +3,7 @@ using Microsoft.UI.Xaml;
using System.Runtime.InteropServices;
using WinRT;
-namespace MoltbotTray.Helpers;
+namespace OpenClawTray.Helpers;
///
/// Helper class to apply Mica backdrop with IsInputActive always true.
diff --git a/src/Moltbot.Tray.WinUI/Helpers/IconHelper.cs b/src/OpenClaw.Tray.WinUI/Helpers/IconHelper.cs
similarity index 98%
rename from src/Moltbot.Tray.WinUI/Helpers/IconHelper.cs
rename to src/OpenClaw.Tray.WinUI/Helpers/IconHelper.cs
index f77e4aa..4d9fc0b 100644
--- a/src/Moltbot.Tray.WinUI/Helpers/IconHelper.cs
+++ b/src/OpenClaw.Tray.WinUI/Helpers/IconHelper.cs
@@ -1,10 +1,10 @@
-using Moltbot.Shared;
+using OpenClaw.Shared;
using System;
using System.Drawing;
using System.IO;
using System.Runtime.InteropServices;
-namespace MoltbotTray.Helpers;
+namespace OpenClawTray.Helpers;
///
/// Provides icon resources for the tray application.
diff --git a/src/Moltbot.Tray.WinUI/Helpers/ThemeHelper.cs b/src/OpenClaw.Tray.WinUI/Helpers/ThemeHelper.cs
similarity index 97%
rename from src/Moltbot.Tray.WinUI/Helpers/ThemeHelper.cs
rename to src/OpenClaw.Tray.WinUI/Helpers/ThemeHelper.cs
index f1e0215..df3c018 100644
--- a/src/Moltbot.Tray.WinUI/Helpers/ThemeHelper.cs
+++ b/src/OpenClaw.Tray.WinUI/Helpers/ThemeHelper.cs
@@ -2,7 +2,7 @@ using Microsoft.UI.Xaml;
using Microsoft.Win32;
using Windows.UI;
-namespace MoltbotTray.Helpers;
+namespace OpenClawTray.Helpers;
///
/// Helpers for detecting and applying Windows theme (dark/light mode).
diff --git a/src/Moltbot.Tray.WinUI/Moltbot.Tray.WinUI.csproj b/src/OpenClaw.Tray.WinUI/OpenClaw.Tray.WinUI.csproj
similarity index 90%
rename from src/Moltbot.Tray.WinUI/Moltbot.Tray.WinUI.csproj
rename to src/OpenClaw.Tray.WinUI/OpenClaw.Tray.WinUI.csproj
index 25ccf7b..5824669 100644
--- a/src/Moltbot.Tray.WinUI/Moltbot.Tray.WinUI.csproj
+++ b/src/OpenClaw.Tray.WinUI/OpenClaw.Tray.WinUI.csproj
@@ -8,7 +8,7 @@
enable
None
true
- Assets\moltbot.ico
+ Assets\openclaw.ico
MoltbotTray
app.manifest
@@ -19,7 +19,7 @@
-
+
diff --git a/src/Moltbot.Tray.WinUI/Services/AutoStartManager.cs b/src/OpenClaw.Tray.WinUI/Services/AutoStartManager.cs
similarity index 93%
rename from src/Moltbot.Tray.WinUI/Services/AutoStartManager.cs
rename to src/OpenClaw.Tray.WinUI/Services/AutoStartManager.cs
index 3ad411e..1e0c641 100644
--- a/src/Moltbot.Tray.WinUI/Services/AutoStartManager.cs
+++ b/src/OpenClaw.Tray.WinUI/Services/AutoStartManager.cs
@@ -1,7 +1,7 @@
using Microsoft.Win32;
using System;
-namespace MoltbotTray.Services;
+namespace OpenClawTray.Services;
///
/// Manages Windows auto-start registry entries.
@@ -9,7 +9,7 @@ namespace MoltbotTray.Services;
public static class AutoStartManager
{
private const string RegistryKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run";
- private const string AppName = "MoltbotTray";
+ private const string AppName = "OpenClawTray";
public static bool IsAutoStartEnabled()
{
diff --git a/src/Moltbot.Tray.WinUI/Services/DeepLinkHandler.cs b/src/OpenClaw.Tray.WinUI/Services/DeepLinkHandler.cs
similarity index 92%
rename from src/Moltbot.Tray.WinUI/Services/DeepLinkHandler.cs
rename to src/OpenClaw.Tray.WinUI/Services/DeepLinkHandler.cs
index 10b946f..8a727cf 100644
--- a/src/Moltbot.Tray.WinUI/Services/DeepLinkHandler.cs
+++ b/src/OpenClaw.Tray.WinUI/Services/DeepLinkHandler.cs
@@ -2,10 +2,10 @@ using Microsoft.Win32;
using System;
using System.Threading.Tasks;
-namespace MoltbotTray.Services;
+namespace OpenClawTray.Services;
///
-/// Handles moltbot:// deep link URI scheme registration and processing.
+/// Handles openclaw:// deep link URI scheme registration and processing.
///
public static class DeepLinkHandler
{
@@ -28,7 +28,7 @@ public static class DeepLinkHandler
using var commandKey = key?.CreateSubKey(@"shell\open\command");
commandKey?.SetValue("", $"\"{exePath}\" \"%1\"");
- Logger.Info("URI scheme registered: moltbot://");
+ Logger.Info("URI scheme registered: openclaw://");
}
catch (Exception ex)
{
@@ -38,10 +38,10 @@ public static class DeepLinkHandler
public static void Handle(string uri, DeepLinkActions actions)
{
- if (!uri.StartsWith("moltbot://", StringComparison.OrdinalIgnoreCase))
+ if (!uri.StartsWith("openclaw://", StringComparison.OrdinalIgnoreCase))
return;
- var path = uri["moltbot://".Length..].TrimEnd('/');
+ var path = uri["openclaw://".Length..].TrimEnd('/');
var queryIndex = path.IndexOf('?');
var query = queryIndex >= 0 ? path[(queryIndex + 1)..] : "";
path = queryIndex >= 0 ? path[..queryIndex] : path;
diff --git a/src/Moltbot.Tray.WinUI/Services/GlobalHotkeyService.cs b/src/OpenClaw.Tray.WinUI/Services/GlobalHotkeyService.cs
similarity index 99%
rename from src/Moltbot.Tray.WinUI/Services/GlobalHotkeyService.cs
rename to src/OpenClaw.Tray.WinUI/Services/GlobalHotkeyService.cs
index 949f374..6aad6f9 100644
--- a/src/Moltbot.Tray.WinUI/Services/GlobalHotkeyService.cs
+++ b/src/OpenClaw.Tray.WinUI/Services/GlobalHotkeyService.cs
@@ -1,7 +1,7 @@
using System;
using System.Runtime.InteropServices;
-namespace MoltbotTray.Services;
+namespace OpenClawTray.Services;
///
/// Registers and handles global hotkeys using P/Invoke.
diff --git a/src/Moltbot.Tray.WinUI/Services/Logger.cs b/src/OpenClaw.Tray.WinUI/Services/Logger.cs
similarity index 88%
rename from src/Moltbot.Tray.WinUI/Services/Logger.cs
rename to src/OpenClaw.Tray.WinUI/Services/Logger.cs
index 6adda66..5eadc3b 100644
--- a/src/Moltbot.Tray.WinUI/Services/Logger.cs
+++ b/src/OpenClaw.Tray.WinUI/Services/Logger.cs
@@ -1,7 +1,7 @@
using System;
using System.IO;
-namespace MoltbotTray.Services;
+namespace OpenClawTray.Services;
///
/// Simple file logger for the tray application.
@@ -16,10 +16,10 @@ public static class Logger
{
_logDirectory = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
- "MoltbotTray");
+ "OpenClawTray");
Directory.CreateDirectory(_logDirectory);
- _logFilePath = Path.Combine(_logDirectory, "moltbot-tray.log");
+ _logFilePath = Path.Combine(_logDirectory, "openclaw-tray.log");
// Rotate log if too large (> 5MB)
try
@@ -27,7 +27,7 @@ public static class Logger
var fileInfo = new FileInfo(_logFilePath);
if (fileInfo.Exists && fileInfo.Length > 5 * 1024 * 1024)
{
- var backupPath = Path.Combine(_logDirectory, "moltbot-tray.log.old");
+ var backupPath = Path.Combine(_logDirectory, "openclaw-tray.log.old");
if (File.Exists(backupPath)) File.Delete(backupPath);
File.Move(_logFilePath, backupPath);
}
diff --git a/src/Moltbot.Tray.WinUI/Services/NotificationHistoryService.cs b/src/OpenClaw.Tray.WinUI/Services/NotificationHistoryService.cs
similarity index 98%
rename from src/Moltbot.Tray.WinUI/Services/NotificationHistoryService.cs
rename to src/OpenClaw.Tray.WinUI/Services/NotificationHistoryService.cs
index f9f9cb5..2ed9aa9 100644
--- a/src/Moltbot.Tray.WinUI/Services/NotificationHistoryService.cs
+++ b/src/OpenClaw.Tray.WinUI/Services/NotificationHistoryService.cs
@@ -2,7 +2,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
-namespace MoltbotTray.Services;
+namespace OpenClawTray.Services;
///
/// Stores notification history in memory with a configurable limit.
diff --git a/src/Moltbot.Tray.WinUI/Services/SettingsManager.cs b/src/OpenClaw.Tray.WinUI/Services/SettingsManager.cs
similarity index 98%
rename from src/Moltbot.Tray.WinUI/Services/SettingsManager.cs
rename to src/OpenClaw.Tray.WinUI/Services/SettingsManager.cs
index fc8a1f2..4d455b9 100644
--- a/src/Moltbot.Tray.WinUI/Services/SettingsManager.cs
+++ b/src/OpenClaw.Tray.WinUI/Services/SettingsManager.cs
@@ -2,7 +2,7 @@ using System;
using System.IO;
using System.Text.Json;
-namespace MoltbotTray.Services;
+namespace OpenClawTray.Services;
///
/// Manages application settings with JSON persistence.
@@ -11,7 +11,7 @@ public class SettingsManager
{
private static readonly string SettingsDirectory = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
- "MoltbotTray");
+ "OpenClawTray");
private static readonly string SettingsFilePath = Path.Combine(SettingsDirectory, "settings.json");
diff --git a/src/Moltbot.Tray.WinUI/Windows/NotificationHistoryWindow.xaml b/src/OpenClaw.Tray.WinUI/Windows/NotificationHistoryWindow.xaml
similarity index 100%
rename from src/Moltbot.Tray.WinUI/Windows/NotificationHistoryWindow.xaml
rename to src/OpenClaw.Tray.WinUI/Windows/NotificationHistoryWindow.xaml
diff --git a/src/Moltbot.Tray.WinUI/Windows/NotificationHistoryWindow.xaml.cs b/src/OpenClaw.Tray.WinUI/Windows/NotificationHistoryWindow.xaml.cs
similarity index 96%
rename from src/Moltbot.Tray.WinUI/Windows/NotificationHistoryWindow.xaml.cs
rename to src/OpenClaw.Tray.WinUI/Windows/NotificationHistoryWindow.xaml.cs
index 1c24143..f64d8e8 100644
--- a/src/Moltbot.Tray.WinUI/Windows/NotificationHistoryWindow.xaml.cs
+++ b/src/OpenClaw.Tray.WinUI/Windows/NotificationHistoryWindow.xaml.cs
@@ -1,15 +1,15 @@
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
-using Moltbot.Shared;
-using MoltbotTray.Helpers;
-using MoltbotTray.Services;
+using OpenClaw.Shared;
+using OpenClawTray.Helpers;
+using OpenClawTray.Services;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using WinUIEx;
-namespace MoltbotTray.Windows;
+namespace OpenClawTray.Windows;
public sealed partial class NotificationHistoryWindow : WindowEx
{
diff --git a/src/Moltbot.Tray.WinUI/Windows/SettingsWindow.xaml b/src/OpenClaw.Tray.WinUI/Windows/SettingsWindow.xaml
similarity index 100%
rename from src/Moltbot.Tray.WinUI/Windows/SettingsWindow.xaml
rename to src/OpenClaw.Tray.WinUI/Windows/SettingsWindow.xaml
diff --git a/src/Moltbot.Tray.WinUI/Windows/SettingsWindow.xaml.cs b/src/OpenClaw.Tray.WinUI/Windows/SettingsWindow.xaml.cs
similarity index 96%
rename from src/Moltbot.Tray.WinUI/Windows/SettingsWindow.xaml.cs
rename to src/OpenClaw.Tray.WinUI/Windows/SettingsWindow.xaml.cs
index c16e660..f769c3b 100644
--- a/src/Moltbot.Tray.WinUI/Windows/SettingsWindow.xaml.cs
+++ b/src/OpenClaw.Tray.WinUI/Windows/SettingsWindow.xaml.cs
@@ -1,13 +1,13 @@
using Microsoft.Toolkit.Uwp.Notifications;
using Microsoft.UI.Xaml;
-using Moltbot.Shared;
-using MoltbotTray.Helpers;
-using MoltbotTray.Services;
+using OpenClaw.Shared;
+using OpenClawTray.Helpers;
+using OpenClawTray.Services;
using System;
using System.Threading.Tasks;
using WinUIEx;
-namespace MoltbotTray.Windows;
+namespace OpenClawTray.Windows;
public sealed partial class SettingsWindow : WindowEx
{
@@ -96,7 +96,7 @@ public sealed partial class SettingsWindow : WindowEx
try
{
- var client = new MoltbotGatewayClient(
+ var client = new OpenClawGatewayClient(
GatewayUrlTextBox.Text.Trim(),
TokenTextBox.Text.Trim(),
new TestLogger());
@@ -166,7 +166,7 @@ public sealed partial class SettingsWindow : WindowEx
Close();
}
- private class TestLogger : IMoltbotLogger
+ private class TestLogger : IOpenClawLogger
{
public void Info(string message) { }
public void Warn(string message) { }
diff --git a/src/Moltbot.Tray.WinUI/Windows/StatusDetailWindow.xaml b/src/OpenClaw.Tray.WinUI/Windows/StatusDetailWindow.xaml
similarity index 100%
rename from src/Moltbot.Tray.WinUI/Windows/StatusDetailWindow.xaml
rename to src/OpenClaw.Tray.WinUI/Windows/StatusDetailWindow.xaml
diff --git a/src/Moltbot.Tray.WinUI/Windows/StatusDetailWindow.xaml.cs b/src/OpenClaw.Tray.WinUI/Windows/StatusDetailWindow.xaml.cs
similarity index 97%
rename from src/Moltbot.Tray.WinUI/Windows/StatusDetailWindow.xaml.cs
rename to src/OpenClaw.Tray.WinUI/Windows/StatusDetailWindow.xaml.cs
index 0059beb..15b1678 100644
--- a/src/Moltbot.Tray.WinUI/Windows/StatusDetailWindow.xaml.cs
+++ b/src/OpenClaw.Tray.WinUI/Windows/StatusDetailWindow.xaml.cs
@@ -1,15 +1,15 @@
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Media;
using Microsoft.UI;
-using Moltbot.Shared;
-using MoltbotTray.Helpers;
+using OpenClaw.Shared;
+using OpenClawTray.Helpers;
using System;
using System.Collections.Generic;
using System.Linq;
using WinUIEx;
using Windows.UI;
-namespace MoltbotTray.Windows;
+namespace OpenClawTray.Windows;
public sealed partial class StatusDetailWindow : WindowEx
{
diff --git a/src/Moltbot.Tray.WinUI/Windows/TrayMenuWindow.xaml b/src/OpenClaw.Tray.WinUI/Windows/TrayMenuWindow.xaml
similarity index 100%
rename from src/Moltbot.Tray.WinUI/Windows/TrayMenuWindow.xaml
rename to src/OpenClaw.Tray.WinUI/Windows/TrayMenuWindow.xaml
diff --git a/src/Moltbot.Tray.WinUI/Windows/TrayMenuWindow.xaml.cs b/src/OpenClaw.Tray.WinUI/Windows/TrayMenuWindow.xaml.cs
similarity index 99%
rename from src/Moltbot.Tray.WinUI/Windows/TrayMenuWindow.xaml.cs
rename to src/OpenClaw.Tray.WinUI/Windows/TrayMenuWindow.xaml.cs
index 3849d7b..e942f6c 100644
--- a/src/Moltbot.Tray.WinUI/Windows/TrayMenuWindow.xaml.cs
+++ b/src/OpenClaw.Tray.WinUI/Windows/TrayMenuWindow.xaml.cs
@@ -1,12 +1,12 @@
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Input;
-using MoltbotTray.Helpers;
+using OpenClawTray.Helpers;
using System;
using System.Runtime.InteropServices;
using WinUIEx;
-namespace MoltbotTray.Windows;
+namespace OpenClawTray.Windows;
///
/// A popup window that displays the tray menu at the cursor position.
diff --git a/src/Moltbot.Tray.WinUI/Windows/WebChatWindow.xaml b/src/OpenClaw.Tray.WinUI/Windows/WebChatWindow.xaml
similarity index 100%
rename from src/Moltbot.Tray.WinUI/Windows/WebChatWindow.xaml
rename to src/OpenClaw.Tray.WinUI/Windows/WebChatWindow.xaml
diff --git a/src/Moltbot.Tray.WinUI/Windows/WebChatWindow.xaml.cs b/src/OpenClaw.Tray.WinUI/Windows/WebChatWindow.xaml.cs
similarity index 96%
rename from src/Moltbot.Tray.WinUI/Windows/WebChatWindow.xaml.cs
rename to src/OpenClaw.Tray.WinUI/Windows/WebChatWindow.xaml.cs
index 1112ce9..c12f89d 100644
--- a/src/Moltbot.Tray.WinUI/Windows/WebChatWindow.xaml.cs
+++ b/src/OpenClaw.Tray.WinUI/Windows/WebChatWindow.xaml.cs
@@ -1,8 +1,8 @@
using Microsoft.UI.Xaml;
using Microsoft.Web.WebView2.Core;
-using Moltbot.Shared;
-using MoltbotTray.Helpers;
-using MoltbotTray.Services;
+using OpenClaw.Shared;
+using OpenClawTray.Helpers;
+using OpenClawTray.Services;
using System;
using System.Diagnostics;
using System.IO;
@@ -10,7 +10,7 @@ using System.Threading.Tasks;
using WinUIEx;
using Windows.Foundation;
-namespace MoltbotTray.Windows;
+namespace OpenClawTray.Windows;
public sealed partial class WebChatWindow : WindowEx
{
@@ -64,7 +64,7 @@ public sealed partial class WebChatWindow : WindowEx
// Set up user data folder via environment variable (WinUI 3 workaround)
var userDataFolder = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
- "MoltbotTray", "WebView2");
+ "OpenClawTray", "WebView2");
Directory.CreateDirectory(userDataFolder);
Environment.SetEnvironmentVariable("WEBVIEW2_USER_DATA_FOLDER", userDataFolder);
diff --git a/src/Moltbot.Tray.WinUI/app.manifest b/src/OpenClaw.Tray.WinUI/app.manifest
similarity index 100%
rename from src/Moltbot.Tray.WinUI/app.manifest
rename to src/OpenClaw.Tray.WinUI/app.manifest
diff --git a/src/Moltbot.Tray/.gitignore b/src/OpenClaw.Tray/.gitignore
similarity index 100%
rename from src/Moltbot.Tray/.gitignore
rename to src/OpenClaw.Tray/.gitignore
diff --git a/src/Moltbot.Tray/AutoStartManager.cs b/src/OpenClaw.Tray/AutoStartManager.cs
similarity index 96%
rename from src/Moltbot.Tray/AutoStartManager.cs
rename to src/OpenClaw.Tray/AutoStartManager.cs
index ff88a22..e439fe4 100644
--- a/src/Moltbot.Tray/AutoStartManager.cs
+++ b/src/OpenClaw.Tray/AutoStartManager.cs
@@ -9,7 +9,7 @@ namespace MoltbotTray;
public static class AutoStartManager
{
private const string RegistryKeyPath = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run";
- private const string ApplicationName = "MoltbotTray";
+ private const string ApplicationName = "OpenClawTray";
public static void SetAutoStart(bool enabled)
{
diff --git a/src/Moltbot.Tray/DEVELOPMENT.md b/src/OpenClaw.Tray/DEVELOPMENT.md
similarity index 100%
rename from src/Moltbot.Tray/DEVELOPMENT.md
rename to src/OpenClaw.Tray/DEVELOPMENT.md
diff --git a/src/Moltbot.Tray/DeepLinkHandler.cs b/src/OpenClaw.Tray/DeepLinkHandler.cs
similarity index 86%
rename from src/Moltbot.Tray/DeepLinkHandler.cs
rename to src/OpenClaw.Tray/DeepLinkHandler.cs
index 51d50d2..0393dfa 100644
--- a/src/Moltbot.Tray/DeepLinkHandler.cs
+++ b/src/OpenClaw.Tray/DeepLinkHandler.cs
@@ -1,5 +1,5 @@
using Microsoft.Win32;
-using Moltbot.Shared;
+using OpenClaw.Shared;
using System;
using System.Collections.Specialized;
using System.Threading.Tasks;
@@ -9,8 +9,8 @@ using System.Windows.Forms;
namespace MoltbotTray;
///
-/// Handles moltbot:// URI scheme registration and processing.
-/// Matches macOS deep link support (moltbot://agent?message=...)
+/// Handles openclaw:// URI scheme registration and processing.
+/// Matches macOS deep link support (openclaw://agent?message=...)
///
public static class DeepLinkHandler
{
@@ -18,7 +18,7 @@ public static class DeepLinkHandler
private const string FriendlyName = "Moltbot Agent Command";
///
- /// Registers the moltbot:// URI scheme in the Windows registry.
+ /// Registers the openclaw:// URI scheme in the Windows registry.
/// Requires elevation for HKCR, falls back to HKCU.
///
public static void RegisterUriScheme()
@@ -72,15 +72,15 @@ public static class DeepLinkHandler
}
///
- /// Processes a moltbot:// deep link.
+ /// Processes a openclaw:// deep link.
/// Supports:
- /// moltbot://agent?message=...
- /// moltbot://send?message=... (opens Quick Send with pre-filled text)
- /// moltbot://dashboard
- /// moltbot://chat
- /// moltbot://settings
+ /// openclaw://agent?message=...
+ /// openclaw://send?message=... (opens Quick Send with pre-filled text)
+ /// openclaw://dashboard
+ /// openclaw://chat
+ /// openclaw://settings
///
- public static async Task ProcessDeepLinkAsync(Uri uri, MoltbotGatewayClient client, Action? openDashboard = null, Action? openChat = null, Action? openSettings = null, Action? openQuickSend = null)
+ public static async Task ProcessDeepLinkAsync(Uri uri, OpenClawGatewayClient client, Action? openDashboard = null, Action? openChat = null, Action? openSettings = null, Action? openQuickSend = null)
{
Logger.Info($"Processing deep link: {uri}");
@@ -111,7 +111,7 @@ public static class DeepLinkHandler
}
}
- private static async Task HandleAgentDeepLinkAsync(NameValueCollection query, MoltbotGatewayClient client)
+ private static async Task HandleAgentDeepLinkAsync(NameValueCollection query, OpenClawGatewayClient client)
{
var message = query["message"];
if (string.IsNullOrWhiteSpace(message))
diff --git a/src/Moltbot.Tray/DownloadProgressDialog.cs b/src/OpenClaw.Tray/DownloadProgressDialog.cs
similarity index 100%
rename from src/Moltbot.Tray/DownloadProgressDialog.cs
rename to src/OpenClaw.Tray/DownloadProgressDialog.cs
diff --git a/src/Moltbot.Tray/GlobalHotkey.cs b/src/OpenClaw.Tray/GlobalHotkey.cs
similarity index 100%
rename from src/Moltbot.Tray/GlobalHotkey.cs
rename to src/OpenClaw.Tray/GlobalHotkey.cs
diff --git a/src/Moltbot.Tray/IconHelper.cs b/src/OpenClaw.Tray/IconHelper.cs
similarity index 100%
rename from src/Moltbot.Tray/IconHelper.cs
rename to src/OpenClaw.Tray/IconHelper.cs
diff --git a/src/Moltbot.Tray/LICENSE b/src/OpenClaw.Tray/LICENSE
similarity index 100%
rename from src/Moltbot.Tray/LICENSE
rename to src/OpenClaw.Tray/LICENSE
diff --git a/src/Moltbot.Tray/Logger.cs b/src/OpenClaw.Tray/Logger.cs
similarity index 85%
rename from src/Moltbot.Tray/Logger.cs
rename to src/OpenClaw.Tray/Logger.cs
index 9f5b872..d0dc7a8 100644
--- a/src/Moltbot.Tray/Logger.cs
+++ b/src/OpenClaw.Tray/Logger.cs
@@ -1,26 +1,26 @@
using System;
using System.Diagnostics;
using System.IO;
-using Moltbot.Shared;
+using OpenClaw.Shared;
namespace MoltbotTray;
///
/// Simple file + debug logger for troubleshooting.
-/// Writes to %LOCALAPPDATA%\MoltbotTray\moltbot-tray.log
+/// Writes to %LOCALAPPDATA%\MoltbotTray\openclaw-tray.log
///
public static class Logger
{
private static readonly string LogDir = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
- "MoltbotTray");
- private static readonly string LogPath = Path.Combine(LogDir, "moltbot-tray.log");
+ "OpenClawTray");
+ private static readonly string LogPath = Path.Combine(LogDir, "openclaw-tray.log");
private static readonly object Lock = new();
private static bool _initialized;
private static StreamWriter? _writer;
- /// Get a logger instance that implements IMoltbotLogger for the shared library.
- public static IMoltbotLogger Instance { get; } = new LoggerAdapter();
+ /// Get a logger instance that implements IOpenClawLogger for the shared library.
+ public static IOpenClawLogger Instance { get; } = new LoggerAdapter();
public static void Info(string message) => Write("INFO", message);
public static void Warn(string message) => Write("WARN", message);
@@ -89,8 +89,8 @@ public static class Logger
}
}
- /// Adapter to make the static Logger work with IMoltbotLogger interface.
- private class LoggerAdapter : IMoltbotLogger
+ /// Adapter to make the static Logger work with IOpenClawLogger interface.
+ private class LoggerAdapter : IOpenClawLogger
{
public void Info(string message) => Logger.Info(message);
public void Warn(string message) => Logger.Warn(message);
diff --git a/src/Moltbot.Tray/ModernForm.cs b/src/OpenClaw.Tray/ModernForm.cs
similarity index 100%
rename from src/Moltbot.Tray/ModernForm.cs
rename to src/OpenClaw.Tray/ModernForm.cs
diff --git a/src/Moltbot.Tray/ModernForm.resx b/src/OpenClaw.Tray/ModernForm.resx
similarity index 100%
rename from src/Moltbot.Tray/ModernForm.resx
rename to src/OpenClaw.Tray/ModernForm.resx
diff --git a/src/Moltbot.Tray/ModernTrayMenu.cs b/src/OpenClaw.Tray/ModernTrayMenu.cs
similarity index 100%
rename from src/Moltbot.Tray/ModernTrayMenu.cs
rename to src/OpenClaw.Tray/ModernTrayMenu.cs
diff --git a/src/Moltbot.Tray/NotificationHistoryForm.cs b/src/OpenClaw.Tray/NotificationHistoryForm.cs
similarity index 100%
rename from src/Moltbot.Tray/NotificationHistoryForm.cs
rename to src/OpenClaw.Tray/NotificationHistoryForm.cs
diff --git a/src/Moltbot.Tray/Moltbot.Tray.csproj b/src/OpenClaw.Tray/OpenClaw.Tray.csproj
similarity index 91%
rename from src/Moltbot.Tray/Moltbot.Tray.csproj
rename to src/OpenClaw.Tray/OpenClaw.Tray.csproj
index 179f165..f1f772b 100644
--- a/src/Moltbot.Tray/Moltbot.Tray.csproj
+++ b/src/OpenClaw.Tray/OpenClaw.Tray.csproj
@@ -8,7 +8,7 @@
enable
true
MSB3277
- moltbot.ico
+ openclaw.ico
Moltbot Windows Tray
Windows system tray companion app for Moltbot
Scott Hanselman
@@ -23,7 +23,7 @@
-
+
diff --git a/src/Moltbot.Tray/Program.cs b/src/OpenClaw.Tray/Program.cs
similarity index 97%
rename from src/Moltbot.Tray/Program.cs
rename to src/OpenClaw.Tray/Program.cs
index fb1a65a..d701b74 100644
--- a/src/Moltbot.Tray/Program.cs
+++ b/src/OpenClaw.Tray/Program.cs
@@ -23,11 +23,11 @@ internal static class Program
static void Main(string[] args)
{
// Single instance check
- using var mutex = new Mutex(true, "MoltbotTray", out bool createdNew);
+ using var mutex = new Mutex(true, "OpenClawTray", out bool createdNew);
if (!createdNew)
{
// Forward deep link args to running instance via named pipe
- if (args.Length > 0 && args[0].StartsWith("moltbot://", StringComparison.OrdinalIgnoreCase))
+ if (args.Length > 0 && args[0].StartsWith("openclaw://", StringComparison.OrdinalIgnoreCase))
{
SendDeepLinkToRunningInstance(args[0]);
}
diff --git a/src/Moltbot.Tray/QuickSendDialog.cs b/src/OpenClaw.Tray/QuickSendDialog.cs
similarity index 100%
rename from src/Moltbot.Tray/QuickSendDialog.cs
rename to src/OpenClaw.Tray/QuickSendDialog.cs
diff --git a/src/Moltbot.Tray/README.md b/src/OpenClaw.Tray/README.md
similarity index 93%
rename from src/Moltbot.Tray/README.md
rename to src/OpenClaw.Tray/README.md
index e646397..df3da45 100644
--- a/src/Moltbot.Tray/README.md
+++ b/src/OpenClaw.Tray/README.md
@@ -1,6 +1,6 @@
# Moltbot Windows Tray
-A Windows system tray companion for [Moltbot](https://github.com/Moltbot/Moltbot) โ the Windows equivalent of the macOS menu bar app. Provides desktop notifications, embedded chat, live agent activity monitoring, and gateway status tracking.
+A Windows system tray companion for [OpenClaw](https://moltbot.com) โ the Windows equivalent of the macOS menu bar app. Provides desktop notifications, embedded chat, live agent activity monitoring, and gateway status tracking.
## Features
@@ -91,7 +91,7 @@ A Windows system tray companion for [Moltbot](https://github.com/Moltbot/Moltbot
```bash
# In WSL2:
-cat ~/.Moltbot/Moltbot.json | grep token
+cat ~/.Moltbot/OpenClaw.json | grep token
# Or:
Moltbot config get gateway.auth.token
```
@@ -122,7 +122,7 @@ dotnet build -p:EnableWindowsTargeting=true -r win-x64
```
โโโ Program.cs # Entry point, single instance, deep link registration
โโโ TrayApplication.cs # Tray icon, menu, event wiring, UI updates
-โโโ MoltbotGatewayClient.cs # WebSocket client, protocol v3, event parsing, state tracking
+โโโ OpenClawGatewayClient.cs # WebSocket client, protocol v3, event parsing, state tracking
โโโ WebChatForm.cs # WebView2 chat panel (singleton, dark mode)
โโโ QuickSendDialog.cs # Quick message input (Enter to send, TopMost)
โโโ StatusDetailForm.cs # Rich status detail view (dark theme)
@@ -138,7 +138,7 @@ dotnet build -p:EnableWindowsTargeting=true -r win-x64
## macOS Parity Status
-This Windows tray app aims for feature parity with the [Moltbot macOS menu bar app](https://github.com/Moltbot/Moltbot-macos).
+This Windows tray app aims for feature parity with the [Moltbot macOS menu bar app](https://moltbot.com-macos).
| Feature | macOS | Windows | Notes |
|---------|:-----:|:-------:|-------|
@@ -196,7 +196,7 @@ Settings are stored in `%APPDATA%\MoltbotTray\settings.json`:
**Can't connect?**
- Check gateway: `Moltbot gateway status` in WSL2
-- Verify token matches `~/.Moltbot/Moltbot.json`
+- Verify token matches `~/.Moltbot/OpenClaw.json`
- Try WSL2 IP directly: `ws://:18789` (`wsl hostname -I`)
**No notifications?**
@@ -222,5 +222,5 @@ MIT
- Built with .NET 10, Windows Forms, and [WebView2](https://developer.microsoft.com/en-us/microsoft-edge/webview2/)
- Toast notifications via [Microsoft.Toolkit.Uwp.Notifications](https://github.com/CommunityToolkit/WindowsCommunityToolkit)
-- Part of the [Moltbot](https://github.com/Moltbot/Moltbot) ecosystem
+- Part of the [Moltbot](https://moltbot.com) ecosystem
diff --git a/src/Moltbot.Tray/SettingsDialog.cs b/src/OpenClaw.Tray/SettingsDialog.cs
similarity index 99%
rename from src/Moltbot.Tray/SettingsDialog.cs
rename to src/OpenClaw.Tray/SettingsDialog.cs
index 604b559..4e1941f 100644
--- a/src/Moltbot.Tray/SettingsDialog.cs
+++ b/src/OpenClaw.Tray/SettingsDialog.cs
@@ -1,5 +1,5 @@
using Microsoft.Toolkit.Uwp.Notifications;
-using Moltbot.Shared;
+using OpenClaw.Shared;
using System;
using System.Drawing;
using System.Windows.Forms;
@@ -282,7 +282,7 @@ public partial class SettingsDialog : ModernForm
try
{
- var testClient = new MoltbotGatewayClient(
+ var testClient = new OpenClawGatewayClient(
_gatewayUrlTextBox.Text.Trim(),
_tokenTextBox.Text.Trim());
diff --git a/src/Moltbot.Tray/SettingsManager.cs b/src/OpenClaw.Tray/SettingsManager.cs
similarity index 99%
rename from src/Moltbot.Tray/SettingsManager.cs
rename to src/OpenClaw.Tray/SettingsManager.cs
index 57cc98f..50f959f 100644
--- a/src/Moltbot.Tray/SettingsManager.cs
+++ b/src/OpenClaw.Tray/SettingsManager.cs
@@ -9,7 +9,7 @@ public class SettingsManager
{
private static readonly string SettingsDirectory = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
- "MoltbotTray");
+ "OpenClawTray");
private static readonly string SettingsFile = Path.Combine(SettingsDirectory, "settings.json");
diff --git a/src/Moltbot.Tray/StatusDetailForm.cs b/src/OpenClaw.Tray/StatusDetailForm.cs
similarity index 95%
rename from src/Moltbot.Tray/StatusDetailForm.cs
rename to src/OpenClaw.Tray/StatusDetailForm.cs
index 87bcee6..a2aec81 100644
--- a/src/Moltbot.Tray/StatusDetailForm.cs
+++ b/src/OpenClaw.Tray/StatusDetailForm.cs
@@ -1,4 +1,4 @@
-using Moltbot.Shared;
+using OpenClaw.Shared;
using System;
using System.Drawing;
using System.Text;
@@ -14,13 +14,13 @@ public class StatusDetailForm : ModernForm
private RichTextBox _textBox = null!;
private Button _refreshButton = null!;
private Button _closeButton = null!;
- private readonly MoltbotGatewayClient? _client;
+ private readonly OpenClawGatewayClient? _client;
private readonly SettingsManager? _settings;
private readonly ConnectionStatus _status;
private static StatusDetailForm? _instance;
- public static void ShowOrFocus(MoltbotGatewayClient? client, SettingsManager? settings, ConnectionStatus status)
+ public static void ShowOrFocus(OpenClawGatewayClient? client, SettingsManager? settings, ConnectionStatus status)
{
if (_instance != null && !_instance.IsDisposed)
{
@@ -33,7 +33,7 @@ public class StatusDetailForm : ModernForm
_instance.Show();
}
- private StatusDetailForm(MoltbotGatewayClient? client, SettingsManager? settings, ConnectionStatus status)
+ private StatusDetailForm(OpenClawGatewayClient? client, SettingsManager? settings, ConnectionStatus status)
{
_client = client;
_settings = settings;
diff --git a/src/Moltbot.Tray/TrayApplication.cs b/src/OpenClaw.Tray/TrayApplication.cs
similarity index 98%
rename from src/Moltbot.Tray/TrayApplication.cs
rename to src/OpenClaw.Tray/TrayApplication.cs
index 6821df6..1f3630c 100644
--- a/src/Moltbot.Tray/TrayApplication.cs
+++ b/src/OpenClaw.Tray/TrayApplication.cs
@@ -1,5 +1,5 @@
using Microsoft.Toolkit.Uwp.Notifications;
-using Moltbot.Shared;
+using OpenClaw.Shared;
using System;
using System.Collections.Generic;
using System.Diagnostics;
@@ -18,7 +18,7 @@ public class TrayApplication : ApplicationContext
private NotifyIcon? _notifyIcon;
private ContextMenuStrip? _contextMenu;
private ModernTrayMenu? _modernMenu;
- private MoltbotGatewayClient? _gatewayClient;
+ private OpenClawGatewayClient? _gatewayClient;
private SettingsManager? _settings;
private System.Windows.Forms.Timer? _healthCheckTimer;
private System.Windows.Forms.Timer? _sessionPollTimer;
@@ -398,7 +398,7 @@ public class TrayApplication : ApplicationContext
{
try
{
- _gatewayClient = new MoltbotGatewayClient(_settings!.GatewayUrl, _settings.Token, Logger.Instance);
+ _gatewayClient = new OpenClawGatewayClient(_settings!.GatewayUrl, _settings.Token, Logger.Instance);
_gatewayClient.StatusChanged += OnStatusChanged;
_gatewayClient.NotificationReceived += OnNotificationReceived;
_gatewayClient.ActivityChanged += OnActivityChanged;
@@ -469,7 +469,7 @@ public class TrayApplication : ApplicationContext
_syncContext?.Post(_ => UpdateStatus(status), null);
}
- private void OnNotificationReceived(object? sender, MoltbotNotification n)
+ private void OnNotificationReceived(object? sender, OpenClawNotification n)
{
_syncContext?.Post(_ => ShowNotificationToast(n.Title, n.Message, n.Type), null);
}
@@ -1062,8 +1062,8 @@ public class TrayApplication : ApplicationContext
{
var logDir = System.IO.Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
- "MoltbotTray");
- var logPath = System.IO.Path.Combine(logDir, "moltbot-tray.log");
+ "OpenClawTray");
+ var logPath = System.IO.Path.Combine(logDir, "openclaw-tray.log");
if (System.IO.File.Exists(logPath))
{
@@ -1090,7 +1090,7 @@ public class TrayApplication : ApplicationContext
_gatewayClient.Dispose();
}
- _gatewayClient = new MoltbotGatewayClient(_settings!.GatewayUrl, _settings.Token, Logger.Instance);
+ _gatewayClient = new OpenClawGatewayClient(_settings!.GatewayUrl, _settings.Token, Logger.Instance);
_gatewayClient.StatusChanged += OnStatusChanged;
_gatewayClient.NotificationReceived += OnNotificationReceived;
_gatewayClient.ActivityChanged += OnActivityChanged;
diff --git a/src/Moltbot.Tray/UpdateDialog.cs b/src/OpenClaw.Tray/UpdateDialog.cs
similarity index 100%
rename from src/Moltbot.Tray/UpdateDialog.cs
rename to src/OpenClaw.Tray/UpdateDialog.cs
diff --git a/src/Moltbot.Tray/WebChatForm.cs b/src/OpenClaw.Tray/WebChatForm.cs
similarity index 99%
rename from src/Moltbot.Tray/WebChatForm.cs
rename to src/OpenClaw.Tray/WebChatForm.cs
index 7a2f577..76d8a94 100644
--- a/src/Moltbot.Tray/WebChatForm.cs
+++ b/src/OpenClaw.Tray/WebChatForm.cs
@@ -122,7 +122,7 @@ public class WebChatForm : ModernForm
{
var userDataDir = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
- "MoltbotTray", "WebView2");
+ "OpenClawTray", "WebView2");
var env = await CoreWebView2Environment.CreateAsync(userDataFolder: userDataDir);
await _webView!.EnsureCoreWebView2Async(env);
diff --git a/src/Moltbot.Tray/WelcomeDialog.cs b/src/OpenClaw.Tray/WelcomeDialog.cs
similarity index 100%
rename from src/Moltbot.Tray/WelcomeDialog.cs
rename to src/OpenClaw.Tray/WelcomeDialog.cs
diff --git a/src/Moltbot.Tray/moltbot.ico b/src/OpenClaw.Tray/openclaw.ico
similarity index 100%
rename from src/Moltbot.Tray/moltbot.ico
rename to src/OpenClaw.Tray/openclaw.ico
diff --git a/src/Moltbot.Tray/screenshots/README.md b/src/OpenClaw.Tray/screenshots/README.md
similarity index 100%
rename from src/Moltbot.Tray/screenshots/README.md
rename to src/OpenClaw.Tray/screenshots/README.md
diff --git a/tests/Moltbot.Shared.Tests/ModelsTests.cs b/tests/OpenClaw.Shared.Tests/ModelsTests.cs
similarity index 99%
rename from tests/Moltbot.Shared.Tests/ModelsTests.cs
rename to tests/OpenClaw.Shared.Tests/ModelsTests.cs
index 171b831..63dda0c 100644
--- a/tests/Moltbot.Shared.Tests/ModelsTests.cs
+++ b/tests/OpenClaw.Shared.Tests/ModelsTests.cs
@@ -1,7 +1,7 @@
using Xunit;
-using Moltbot.Shared;
+using OpenClaw.Shared;
-namespace Moltbot.Shared.Tests;
+namespace OpenClaw.Shared.Tests;
public class AgentActivityTests
{
diff --git a/tests/Moltbot.Shared.Tests/Moltbot.Shared.Tests.csproj b/tests/OpenClaw.Shared.Tests/OpenClaw.Shared.Tests.csproj
similarity index 88%
rename from tests/Moltbot.Shared.Tests/Moltbot.Shared.Tests.csproj
rename to tests/OpenClaw.Shared.Tests/OpenClaw.Shared.Tests.csproj
index 806cb18..c322211 100644
--- a/tests/Moltbot.Shared.Tests/Moltbot.Shared.Tests.csproj
+++ b/tests/OpenClaw.Shared.Tests/OpenClaw.Shared.Tests.csproj
@@ -19,7 +19,7 @@
-
+
diff --git a/tests/Moltbot.Shared.Tests/MoltbotGatewayClientTests.cs b/tests/OpenClaw.Shared.Tests/OpenClawGatewayClientTests.cs
similarity index 92%
rename from tests/Moltbot.Shared.Tests/MoltbotGatewayClientTests.cs
rename to tests/OpenClaw.Shared.Tests/OpenClawGatewayClientTests.cs
index d01fd7b..dd5ca32 100644
--- a/tests/Moltbot.Shared.Tests/MoltbotGatewayClientTests.cs
+++ b/tests/OpenClaw.Shared.Tests/OpenClawGatewayClientTests.cs
@@ -2,25 +2,25 @@ using System;
using System.Collections.Generic;
using System.Linq;
using Xunit;
-using Moltbot.Shared;
+using OpenClaw.Shared;
-namespace Moltbot.Shared.Tests;
+namespace OpenClaw.Shared.Tests;
-public class MoltbotGatewayClientTests
+public class OpenClawGatewayClientTests
{
// Test helper to access private methods through reflection
private class GatewayClientTestHelper
{
- private readonly MoltbotGatewayClient _client;
+ private readonly OpenClawGatewayClient _client;
public GatewayClientTestHelper()
{
- _client = new MoltbotGatewayClient("ws://localhost:18789", "test-token", new TestLogger());
+ _client = new OpenClawGatewayClient("ws://localhost:18789", "test-token", new TestLogger());
}
public string ClassifyNotification(string text)
{
- var method = typeof(MoltbotGatewayClient).GetMethod("ClassifyNotification",
+ var method = typeof(OpenClawGatewayClient).GetMethod("ClassifyNotification",
System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static);
var result = method!.Invoke(null, new object[] { text });
var tuple = ((string title, string type))result!;
@@ -29,7 +29,7 @@ public class MoltbotGatewayClientTests
public string GetNotificationTitle(string text)
{
- var method = typeof(MoltbotGatewayClient).GetMethod("ClassifyNotification",
+ var method = typeof(OpenClawGatewayClient).GetMethod("ClassifyNotification",
System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static);
var result = method!.Invoke(null, new object[] { text });
var tuple = ((string title, string type))result!;
@@ -38,7 +38,7 @@ public class MoltbotGatewayClientTests
public ActivityKind ClassifyTool(string toolName)
{
- var method = typeof(MoltbotGatewayClient).GetMethod("ClassifyTool",
+ var method = typeof(OpenClawGatewayClient).GetMethod("ClassifyTool",
System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static);
var result = method!.Invoke(null, new object[] { toolName });
return (ActivityKind)result!;
@@ -46,7 +46,7 @@ public class MoltbotGatewayClientTests
public string ShortenPath(string path)
{
- var method = typeof(MoltbotGatewayClient).GetMethod("ShortenPath",
+ var method = typeof(OpenClawGatewayClient).GetMethod("ShortenPath",
System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static);
var result = method!.Invoke(null, new object[] { path });
return (string)result!;
@@ -54,7 +54,7 @@ public class MoltbotGatewayClientTests
public string TruncateLabel(string text, int maxLen = 60)
{
- var method = typeof(MoltbotGatewayClient).GetMethod("TruncateLabel",
+ var method = typeof(OpenClawGatewayClient).GetMethod("TruncateLabel",
System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static);
var result = method!.Invoke(null, new object[] { text, maxLen });
return (string)result!;
@@ -66,7 +66,7 @@ public class MoltbotGatewayClientTests
}
}
- private class TestLogger : IMoltbotLogger
+ private class TestLogger : IOpenClawLogger
{
public List Logs { get; } = new();
@@ -323,7 +323,7 @@ public class MoltbotGatewayClientTests
public void Constructor_InitializesWithProvidedValues()
{
var logger = new TestLogger();
- var client = new MoltbotGatewayClient("ws://test:8080", "my-token", logger);
+ var client = new OpenClawGatewayClient("ws://test:8080", "my-token", logger);
// Should not throw
Assert.NotNull(client);
@@ -332,7 +332,7 @@ public class MoltbotGatewayClientTests
[Fact]
public void Constructor_UsesNullLogger_WhenNotProvided()
{
- var client = new MoltbotGatewayClient("ws://test:8080", "my-token");
+ var client = new OpenClawGatewayClient("ws://test:8080", "my-token");
// Should not throw
Assert.NotNull(client);
diff --git a/tests/Moltbot.Shared.Tests/README.md b/tests/OpenClaw.Shared.Tests/README.md
similarity index 93%
rename from tests/Moltbot.Shared.Tests/README.md
rename to tests/OpenClaw.Shared.Tests/README.md
index 90b9ac3..c333806 100644
--- a/tests/Moltbot.Shared.Tests/README.md
+++ b/tests/OpenClaw.Shared.Tests/README.md
@@ -1,10 +1,10 @@
-# Moltbot.Shared.Tests
+# OpenClaw.Shared.Tests
-Unit test suite for the Moltbot.Shared library.
+Unit test suite for the OpenClaw.Shared library.
## Overview
-This test project provides comprehensive coverage of the Moltbot.Shared library, focusing on:
+This test project provides comprehensive coverage of the OpenClaw.Shared library, focusing on:
- Data model display text generation
- Gateway client utility methods
- Notification classification
@@ -59,7 +59,7 @@ dotnet test --filter "FullyQualifiedName~AgentActivityTests"
- โ
Combined field formatting
- โ
Empty state ("No usage data")
-### MoltbotGatewayClientTests.cs (20 tests)
+### OpenClawGatewayClientTests.cs (20 tests)
#### Notification Classification (11 tests)
- โ
Health alerts (blood sugar, glucose, CGM, mg/dl)
@@ -141,7 +141,7 @@ Some functionality is Windows-only (Tray app, PowerToys extension), but the Shar
## Contributing
-When adding new functionality to `Moltbot.Shared`:
+When adding new functionality to `OpenClaw.Shared`:
1. Add corresponding unit tests
2. Ensure tests are cross-platform compatible
3. Test edge cases (empty strings, null values, very long inputs)
@@ -151,7 +151,7 @@ When adding new functionality to `Moltbot.Shared`:
- xUnit 2.9.3 - Test framework
- .NET 9.0 - Runtime
-- Moltbot.Shared library
+- OpenClaw.Shared library
## License
diff --git a/tools/cmdpal-dev.ps1 b/tools/cmdpal-dev.ps1
index 45bb56e..ab00108 100644
--- a/tools/cmdpal-dev.ps1
+++ b/tools/cmdpal-dev.ps1
@@ -9,7 +9,7 @@ param(
$ErrorActionPreference = 'Stop'
$RepoRoot = Split-Path -Parent $PSScriptRoot
-$ProjectPath = "$RepoRoot\src\Moltbot.CommandPalette"
+$ProjectPath = "$RepoRoot\src\OpenClaw.CommandPalette"
# Detect architecture
$Arch = if ([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture -eq 'Arm64') { 'arm64' } else { 'x64' }
@@ -18,7 +18,7 @@ $OutputPath = "$ProjectPath\bin\$Arch\Debug\net10.0-windows10.0.26100.0\win-$Arc
function Write-Step($msg) { Write-Host "`n>> $msg" -ForegroundColor Cyan }
function Get-InstalledPackage {
- Get-AppxPackage -Name "*Moltbot*" 2>$null
+ Get-AppxPackage -Name "*OpenClaw*" 2>$null
}
function Remove-ExtensionPackage {
@@ -35,7 +35,7 @@ function Remove-ExtensionPackage {
function Build-Extension {
Write-Step "Building Command Palette ($Arch)..."
Push-Location $RepoRoot
- dotnet build src/Moltbot.CommandPalette -c Debug -p:Platform=$Arch
+ dotnet build src/OpenClaw.CommandPalette -c Debug -p:Platform=$Arch
if ($LASTEXITCODE -ne 0) { throw "Build failed" }
Pop-Location
Write-Host "Build succeeded!" -ForegroundColor Green
@@ -51,7 +51,7 @@ function Deploy-Extension {
# Register for development (loose files, no MSIX needed)
Add-AppxPackage -Register $manifest -ForceApplicationShutdown
- Write-Host "Deployed! Open Command Palette, type 'Reload', then 'Moltbot'" -ForegroundColor Green
+ Write-Host "Deployed! Open Command Palette, type 'Reload', then 'OpenClaw'" -ForegroundColor Green
}
function Show-Status {
@@ -76,6 +76,6 @@ switch ($Action) {
Remove-ExtensionPackage
Build-Extension
Deploy-Extension
- Write-Host "`n=== In Command Palette: type 'Reload' then 'Moltbot' ===" -ForegroundColor Magenta
+ Write-Host "`n=== In Command Palette: type 'Reload' then 'OpenClaw' ===" -ForegroundColor Magenta
}
}