Skip to content

feat: identify as Arduino Agent, not the official Arduino IDE - #39

Merged
mixelpixx merged 1 commit into
mainfrom
rebrand-arduino-agent
Oct 1, 2026
Merged

mixelpixx merged 1 commit into
mainfrom
rebrand-arduino-agent

Conversation

@mixelpixx

Copy link
Copy Markdown
Owner

Summary

Arduino Agent introduced itself as "Arduino IDE 2.3.10" in the title bar, the About box, the menus, the icon and the exe metadata. That made it easy to mistake for Arduino's official product. This PR is the non-breaking half of the rebrand. Nothing moves for existing users: the exe name, app ID and settings folder stay the same, and those identity changes are planned for 0.7.0 (see below).

What changes for users

  • Title bar: reads sketch | Arduino Agent 0.6.x instead of Arduino IDE 2.3.10. The Help menu item is now "About Arduino Agent", and the startup log banner also names Arduino Agent.
  • About dialog:
    • It shows the Agent version, the build date, the CLI version and "Based on Arduino IDE 2.3.10".
    • It says Arduino Agent is not affiliated with or endorsed by Arduino SA, and keeps Arduino's copyright credit.
    • In release builds these version fields used to be blank.
  • Arduino's IDE updater is switched off. It checked Arduino's official feed, so once Arduino ships 2.3.11 it would have offered the official IDE as an "update", replacing Arduino Agent and its MCP server.
    • There's no longer a startup check, and "Check for Arduino IDE Updates" is gone from Help.
    • Board and library update checks are untouched. They share the arduino.checkForUpdates preference, which is why that preference is left alone.
  • Bundled VS Code plugins now load in release builds. arduino-ide-electron-main.js only loads them when buildDate is set, and release.yml never set it. Release builds have therefore been running without the bundled plugins (C++ language features, cortex-debug, language packs).
  • New icon: a white "A" with an amber spark on indigo, used for the app, the exe and the splash screen. It replaces Arduino's teal logo.
  • Exe metadata and MCP strings: CompanyName and copyright are now mixelpixx, not Arduino SA. The MCP preferences, the restart notice and the 401 message say "Arduino Agent".

How it's done

  • Overrides: they live in arduino-mcp-extension/src/browser/agent-branding.ts as inversify rebinds and contributions, so nothing in the vendored arduino-ide-extension is edited.
    • CheckForIDEUpdates is replaced with a no-op version.
    • The updater command and its menu item are unregistered.
    • About is subclassed.
    • CLAUDE.md notes where these live, and that arduino-ide-extension ships no type declarations, so its classes are any in our extension.
  • electron-app/package.json: applicationName, author and description.
  • release.yml: passes version, appVersion, cliVersion and buildDate through -c.extraMetadata the way upstream's scripts/package.js does, but using the Arduino Agent version. name stays arduino-ide, so the settings and userData locations don't move.
  • README: explains that the executable keeps the upstream name for now, that updates come from GitHub releases, and warns users who also have the official IDE installed (shared settings and single-instance lock).

Planned for 0.7.0 (breaking, needs a settings migration)

  • Rename productName (Arduino IDE.exe → Arduino Agent.exe, and likewise the .app). This breaks ARDUINO_AGENT_PATH values ending in Arduino IDE.exe.
  • Give the app its own userData folder and single-instance lock (extraMetadata.name), with a one-time migration of layout, window state and per-sketch board selections. This is what stops a launch being handed off to the official IDE when both are installed.
  • Give the app its own appId. This is required before shipping any NSIS/MSI installer, because one built with Arduino's appId would uninstall the official IDE.
  • Rename the log folder, and replace the installer artwork (the installers aren't built by release.yml yet).
  • Keep sharing ~/.arduinoIDE, Arduino15 and the sketchbook with the official IDE. That sharing is intentional.

Test plan

All of this ran on a local Windows build packaged with the new release.yml command (production webpack + electron-builder), checked from inside the running app through the main-process inspector:

  • The window title is sketch_oct1a | Arduino Agent 0.6.1. The app name is "Arduino Agent", the version is 0.6.1, and userData is still %APPDATA%\arduino-ide (unchanged).
  • In the real Help menu (captured from Theia's setMenu), "Check for Arduino IDE Updates" is gone and the last item is "About Arduino Agent". Upstream registers "Check for Arduino Updates" (boards and libraries) as a palette command only, so its absence from the menu is unchanged.
  • Clicking the real About item produced the expected text (the dialog was captured in the main process): Version 0.6.1, the build date, CLI 1.5.1, "Based on Arduino IDE 2.3.10", and the not-affiliated line.
  • The log since launch has zero update checks; the installed 0.6.1 logged one on every start. The banner reads Arduino Agent 0.6.1.
  • Bundled plugins load: Deploy plugins list took 1,895 ms, up from 2.6 ms, and the plugin host started and loaded the cpp grammar and cortex-debug.
  • The packaged package.json deep-merge kept the themes and preferences, and all 23 bundled plugins are in the package.
  • The MCP smoke test against the rebranded build passes 14/14, and yarn test:bridge passes 11/11.
  • The icon was checked at 1024, 48, 32 and 16 px, and the splash page was checked in a browser.
  • CI: Check MCP Extension.
  • The macOS and Linux packages get confirmed by the next tag's release build.

🤖 Generated with Claude Code

The fork presented itself as "Arduino IDE 2.3.10" everywhere a user looks,
so it was easy to mistake for Arduino's product. This is the non-breaking
half of the rebrand. The exe name, app ID and settings folder are unchanged
and come in 0.7.0.

- applicationName is "Arduino Agent": window title, About menu item, macOS
  app menu, startup banner. Exe metadata author is mixelpixx.
- Arduino's IDE updater is off: no startup check against Arduino's feed and
  no "Check for Arduino IDE Updates" item, since it would offer the official
  IDE as an update. Board/library update checks are untouched.
- The About dialog shows Arduino Agent's version, the Arduino IDE version it
  is based on, and that it is not affiliated with Arduino SA.
- release.yml passes version/appVersion/cliVersion/buildDate like upstream's
  package.js, with the Agent version. This fills the title and About version,
  and buildDate makes release builds load their bundled VS Code plugins
  (previously skipped: no C++ language features).
- New icon (app, exe, splash) replacing Arduino's logo.

The overrides live in arduino-mcp-extension (agent-branding.ts), not in the
vendored arduino-ide-extension.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@mixelpixx
mixelpixx merged commit fee61c3 into main Oct 1, 2026
1 check passed
@mixelpixx
mixelpixx deleted the rebrand-arduino-agent branch October 1, 2026 12:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant