Hi there 👋

Welcome to my blog

M5StickC Plus 刷入 claude-desktop-buddy

前言 前段时间看见 claude-desktop-buddy 这个项目,十分感兴趣,于是买了一个 M5StickC Plus,准备刷入 claude-desktop-buddy,本文介绍整个流程。 步骤 安装 platformio 使用 uv pip install platformio 安装 platformio。 clone claude-desktop-buddy 项目 使用 git clone https://github.com/anthropics/claude-desktop-buddy.git 克隆项目。 连接 M5StickC Plus 到电脑(USB-C) 连接 M5StickC Plus 到电脑(USB-C) 刷固件 使用 pio run -t upload 刷入固件。 󰀵 ming …/claude-desktop-buddy   main   v3.13.12(#m5stack)   20:27  ❯ pio run -t upload Processing m5stickc-plus (platform: espressif32; board: m5stick-c; framework: arduino) ------------------------------------------------------------------------------------------------------------------------ Tool Manager: Installing platformio/tool-esptoolpy @ ~2.41100.0 Unpacking [####################################] 100% Collecting cryptography~=45.0.3 Downloading cryptography-45.0.7-cp311-abi3-macosx_10_9_universal2.whl.metadata (5.7 kB) Collecting ecdsa~=0.19.1 Downloading ecdsa-0.19.2-py2.py3-none-any.whl.metadata (29 kB) Collecting bitstring~=4.3.1 Downloading bitstring-4.3.1-py3-none-any.whl.metadata (5.3 kB) Collecting reedsolo~=1.7.0 Downloading reedsolo-1.7.0-py3-none-any.whl.metadata (23 kB) Collecting intelhex~=2.3.0 Downloading intelhex-2.3.0-py2.py3-none-any.whl.metadata (2.7 kB) Collecting cffi>=1.14 (from cryptography~=45.0.3) Downloading cffi-2.0.0-cp313-cp313-macosx_11_0_arm64.whl.metadata (2.6 kB) Collecting six>=1.9.0 (from ecdsa~=0.19.1) Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB) Collecting bitarray<4.0,>=3.0.0 (from bitstring~=4.3.1) Downloading bitarray-3.8.1-cp313-cp313-macosx_11_0_arm64.whl.metadata (34 kB) Collecting pycparser (from cffi>=1.14->cryptography~=45.0.3) Downloading pycparser-3.0-py3-none-any.whl.metadata (8.2 kB) Downloading cryptography-45.0.7-cp311-abi3-macosx_10_9_universal2.whl (7.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.0/7.0 MB 20.9 MB/s 0:00:00 Downloading ecdsa-0.19.2-py2.py3-none-any.whl (150 kB) Downloading bitstring-4.3.1-py3-none-any.whl (71 kB) Downloading reedsolo-1.7.0-py3-none-any.whl (32 kB) Downloading intelhex-2.3.0-py2.py3-none-any.whl (50 kB) Downloading bitarray-3.8.1-cp313-cp313-macosx_11_0_arm64.whl (146 kB) Downloading cffi-2.0.0-cp313-cp313-macosx_11_0_arm64.whl (181 kB) Downloading six-1.17.0-py2.py3-none-any.whl (11 kB) Downloading pycparser-3.0-py3-none-any.whl (48 kB) Installing collected packages: reedsolo, intelhex, bitarray, six, pycparser, bitstring, ecdsa, cffi, cryptography Successfully installed bitarray-3.8.1 bitstring-4.3.1 cffi-2.0.0 cryptography-45.0.7 ecdsa-0.19.2 intelhex-2.3.0 pycparser-3.0 reedsolo-1.7.0 six-1.17.0 Tool Manager: [email protected] has been installed! Tool Manager: Installing platformio/tool-mkspiffs @ ~2.230.0 Downloading [####################################] 100% Unpacking [####################################] 100% Tool Manager: [email protected] has been installed! Tool Manager: Installing platformio/tool-mklittlefs @ ~1.203.0 Downloading [####################################] 100% Unpacking [####################################] 100% Tool Manager: [email protected] has been installed! Tool Manager: Installing platformio/tool-mkfatfs @ ~2.0.0 Downloading [####################################] 100% Unpacking [####################################] 100% Tool Manager: [email protected] has been installed! Tool Manager: Installing platformio/tool-scons @ ~4.40801.0 Downloading [####################################] 100% Unpacking [####################################] 100% Tool Manager: [email protected] has been installed! Library Manager: Installing m5stack/M5StickCPlus Downloading [####################################] 100% Unpacking [####################################] 100% Library Manager: [email protected] has been installed! Library Manager: Installing bitbank2/AnimatedGIF @ ^2.1.1 Downloading [####################################] 100% Unpacking [####################################] 100% Library Manager: [email protected] has been installed! Library Manager: Installing bblanchon/ArduinoJson @ ^7.0.0 Downloading [####################################] 100% Unpacking [####################################] 100% Library Manager: [email protected] has been installed! Verbose mode can be enabled via `-v, --verbose` option CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/m5stick-c.html PLATFORM: Espressif 32 (7.0.1) > M5Stick-C HARDWARE: ESP32 160MHz, 320KB RAM, 4MB Flash DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa) PACKAGES: - framework-arduinoespressif32 @ 3.20017.241212+sha.dcc1105b - tool-esptoolpy @ 2.41100.0 (4.11.0) - tool-mkfatfs @ 2.0.1 - tool-mklittlefs @ 1.203.210628 (2.3) - tool-mkspiffs @ 2.230.0 (2.30) - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5 LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf LDF Modes: Finder ~ chain, Compatibility ~ soft Found 36 compatible libraries Scanning dependencies... Dependency Graph |-- M5StickCPlus @ 0.1.1 |-- AnimatedGIF @ 2.2.2 |-- ArduinoJson @ 7.4.3 |-- ESP32 BLE Arduino @ 2.0.0 |-- LittleFS @ 2.0.0 |-- Preferences @ 2.0.0 Building in release mode Compiling .pio/build/m5stickc-plus/src/ble_bridge.cpp.o Compiling .pio/build/m5stickc-plus/src/buddies/axolotl.cpp.o Compiling .pio/build/m5stickc-plus/src/buddies/blob.cpp.o Compiling .pio/build/m5stickc-plus/src/buddies/cactus.cpp.o Compiling .pio/build/m5stickc-plus/src/buddies/capybara.cpp.o Compiling .pio/build/m5stickc-plus/src/buddies/cat.cpp.o Compiling .pio/build/m5stickc-plus/src/buddies/chonk.cpp.o Compiling .pio/build/m5stickc-plus/src/buddies/dragon.cpp.o Compiling .pio/build/m5stickc-plus/src/buddies/duck.cpp.o Compiling .pio/build/m5stickc-plus/src/buddies/ghost.cpp.o Compiling .pio/build/m5stickc-plus/src/buddies/goose.cpp.o Compiling .pio/build/m5stickc-plus/src/buddies/mushroom.cpp.o Compiling .pio/build/m5stickc-plus/src/buddies/octopus.cpp.o Compiling .pio/build/m5stickc-plus/src/buddies/owl.cpp.o Compiling .pio/build/m5stickc-plus/src/buddies/penguin.cpp.o Compiling .pio/build/m5stickc-plus/src/buddies/rabbit.cpp.o Compiling .pio/build/m5stickc-plus/src/buddies/robot.cpp.o Compiling .pio/build/m5stickc-plus/src/buddies/snail.cpp.o Compiling .pio/build/m5stickc-plus/src/buddies/turtle.cpp.o Compiling .pio/build/m5stickc-plus/src/buddy.cpp.o Compiling .pio/build/m5stickc-plus/src/character.cpp.o Compiling .pio/build/m5stickc-plus/src/main.cpp.o Building .pio/build/m5stickc-plus/bootloader.bin Generating partitions .pio/build/m5stickc-plus/partitions.bin Compiling .pio/build/m5stickc-plus/liba41/SPI/SPI.cpp.o Compiling .pio/build/m5stickc-plus/lib270/Wire/Wire.cpp.o esptool.py v4.11.0 Creating esp32 image... Merged 1 ELF section Successfully created esp32 image. Compiling .pio/build/m5stickc-plus/libc92/FS/FS.cpp.o Compiling .pio/build/m5stickc-plus/libc92/FS/vfs_api.cpp.o Compiling .pio/build/m5stickc-plus/lib489/SPIFFS/SPIFFS.cpp.o Compiling .pio/build/m5stickc-plus/libd34/M5StickCPlus/AXP192.cpp.o Compiling .pio/build/m5stickc-plus/libd34/M5StickCPlus/Fonts/Font16.c.o Archiving .pio/build/m5stickc-plus/liba41/libSPI.a Archiving .pio/build/m5stickc-plus/lib270/libWire.a Compiling .pio/build/m5stickc-plus/libd34/M5StickCPlus/Fonts/Font32rle.c.o Compiling .pio/build/m5stickc-plus/libd34/M5StickCPlus/Fonts/Font64rle.c.o Compiling .pio/build/m5stickc-plus/libd34/M5StickCPlus/Fonts/Font72rle.c.o Archiving .pio/build/m5stickc-plus/lib489/libSPIFFS.a Compiling .pio/build/m5stickc-plus/libd34/M5StickCPlus/Fonts/Font7srle.c.o Archiving .pio/build/m5stickc-plus/libc92/libFS.a Compiling .pio/build/m5stickc-plus/libd34/M5StickCPlus/Fonts/glcdfont.c.o Compiling .pio/build/m5stickc-plus/libd34/M5StickCPlus/M5Display.cpp.o Compiling .pio/build/m5stickc-plus/libd34/M5StickCPlus/M5StickCPlus.cpp.o Compiling .pio/build/m5stickc-plus/libd34/M5StickCPlus/RTC.cpp.o Compiling .pio/build/m5stickc-plus/libd34/M5StickCPlus/utility/Button.cpp.o Compiling .pio/build/m5stickc-plus/libd34/M5StickCPlus/utility/In_eSPI.cpp.o Compiling .pio/build/m5stickc-plus/libd34/M5StickCPlus/utility/MPU6886.cpp.o Compiling .pio/build/m5stickc-plus/libd34/M5StickCPlus/utility/MahonyAHRS.cpp.o Compiling .pio/build/m5stickc-plus/libd34/M5StickCPlus/utility/Speaker.cpp.o Compiling .pio/build/m5stickc-plus/libd34/M5StickCPlus/utility/Sprite.cpp.o Compiling .pio/build/m5stickc-plus/libd34/M5StickCPlus/utility/qrcode.c.o Compiling .pio/build/m5stickc-plus/libc04/AnimatedGIF/AnimatedGIF.cpp.o Compiling .pio/build/m5stickc-plus/libc04/AnimatedGIF/p4_transparent.S.o Indexing .pio/build/m5stickc-plus/lib489/libSPIFFS.a Indexing .pio/build/m5stickc-plus/lib270/libWire.a Indexing .pio/build/m5stickc-plus/libc92/libFS.a Indexing .pio/build/m5stickc-plus/liba41/libSPI.a Compiling .pio/build/m5stickc-plus/libc04/AnimatedGIF/s3_transparent.S.o Compiling .pio/build/m5stickc-plus/libd28/BLE/BLE2902.cpp.o Compiling .pio/build/m5stickc-plus/libd28/BLE/BLE2904.cpp.o Compiling .pio/build/m5stickc-plus/libd28/BLE/BLEAddress.cpp.o Compiling .pio/build/m5stickc-plus/libd28/BLE/BLEAdvertisedDevice.cpp.o Compiling .pio/build/m5stickc-plus/libd28/BLE/BLEAdvertising.cpp.o Compiling .pio/build/m5stickc-plus/libd28/BLE/BLEBeacon.cpp.o Compiling .pio/build/m5stickc-plus/libd28/BLE/BLECharacteristic.cpp.o Compiling .pio/build/m5stickc-plus/libd28/BLE/BLECharacteristicMap.cpp.o Compiling .pio/build/m5stickc-plus/libd28/BLE/BLEClient.cpp.o Archiving .pio/build/m5stickc-plus/libc04/libAnimatedGIF.a Compiling .pio/build/m5stickc-plus/libd28/BLE/BLEDescriptor.cpp.o Compiling .pio/build/m5stickc-plus/libd28/BLE/BLEDescriptorMap.cpp.o Indexing .pio/build/m5stickc-plus/libc04/libAnimatedGIF.a Compiling .pio/build/m5stickc-plus/libd28/BLE/BLEDevice.cpp.o Compiling .pio/build/m5stickc-plus/libd28/BLE/BLEEddystoneTLM.cpp.o Compiling .pio/build/m5stickc-plus/libd28/BLE/BLEEddystoneURL.cpp.o Compiling .pio/build/m5stickc-plus/libd28/BLE/BLEExceptions.cpp.o Compiling .pio/build/m5stickc-plus/libd28/BLE/BLEHIDDevice.cpp.o Compiling .pio/build/m5stickc-plus/libd28/BLE/BLERemoteCharacteristic.cpp.o Archiving .pio/build/m5stickc-plus/libd34/libM5StickCPlus.a Compiling .pio/build/m5stickc-plus/libd28/BLE/BLERemoteDescriptor.cpp.o Indexing .pio/build/m5stickc-plus/libd34/libM5StickCPlus.a Compiling .pio/build/m5stickc-plus/libd28/BLE/BLERemoteService.cpp.o Compiling .pio/build/m5stickc-plus/libd28/BLE/BLEScan.cpp.o Compiling .pio/build/m5stickc-plus/libd28/BLE/BLESecurity.cpp.o Compiling .pio/build/m5stickc-plus/libd28/BLE/BLEServer.cpp.o Compiling .pio/build/m5stickc-plus/libd28/BLE/BLEService.cpp.o Compiling .pio/build/m5stickc-plus/libd28/BLE/BLEServiceMap.cpp.o Compiling .pio/build/m5stickc-plus/libd28/BLE/BLEUUID.cpp.o Compiling .pio/build/m5stickc-plus/libd28/BLE/BLEUtils.cpp.o Compiling .pio/build/m5stickc-plus/libd28/BLE/BLEValue.cpp.o Compiling .pio/build/m5stickc-plus/libd28/BLE/FreeRTOS.cpp.o Compiling .pio/build/m5stickc-plus/libd28/BLE/GeneralUtils.cpp.o Compiling .pio/build/m5stickc-plus/lib3f6/LittleFS/LittleFS.cpp.o Compiling .pio/build/m5stickc-plus/lib90f/Preferences/Preferences.cpp.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/Esp.cpp.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/FirmwareMSC.cpp.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/FunctionalInterrupt.cpp.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/HWCDC.cpp.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/HardwareSerial.cpp.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/IPAddress.cpp.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/IPv6Address.cpp.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/MD5Builder.cpp.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/Print.cpp.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/Stream.cpp.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/StreamString.cpp.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/Tone.cpp.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/USB.cpp.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/USBCDC.cpp.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/USBMSC.cpp.o Archiving .pio/build/m5stickc-plus/libd28/libBLE.a Archiving .pio/build/m5stickc-plus/lib3f6/libLittleFS.a Compiling .pio/build/m5stickc-plus/FrameworkArduino/WMath.cpp.o Indexing .pio/build/m5stickc-plus/lib3f6/libLittleFS.a Archiving .pio/build/m5stickc-plus/lib90f/libPreferences.a Compiling .pio/build/m5stickc-plus/FrameworkArduino/WString.cpp.o Indexing .pio/build/m5stickc-plus/libd28/libBLE.a Indexing .pio/build/m5stickc-plus/lib90f/libPreferences.a Compiling .pio/build/m5stickc-plus/FrameworkArduino/base64.cpp.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/cbuf.cpp.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/esp32-hal-adc.c.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/esp32-hal-bt.c.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/esp32-hal-cpu.c.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/esp32-hal-dac.c.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/esp32-hal-gpio.c.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/esp32-hal-i2c-slave.c.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/esp32-hal-i2c.c.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/esp32-hal-ledc.c.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/esp32-hal-matrix.c.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/esp32-hal-misc.c.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/esp32-hal-psram.c.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/esp32-hal-rgb-led.c.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/esp32-hal-rmt.c.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/esp32-hal-sigmadelta.c.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/esp32-hal-spi.c.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/esp32-hal-time.c.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/esp32-hal-timer.c.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/esp32-hal-tinyusb.c.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/esp32-hal-touch.c.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/esp32-hal-uart.c.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/firmware_msc_fat.c.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/libb64/cdecode.c.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/libb64/cencode.c.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/main.cpp.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/stdlib_noniso.c.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/wiring_pulse.c.o Compiling .pio/build/m5stickc-plus/FrameworkArduino/wiring_shift.c.o Archiving .pio/build/m5stickc-plus/libFrameworkArduino.a Indexing .pio/build/m5stickc-plus/libFrameworkArduino.a Linking .pio/build/m5stickc-plus/firmware.elf Retrieving maximum program size .pio/build/m5stickc-plus/firmware.elf Checking size .pio/build/m5stickc-plus/firmware.elf Advanced Memory Usage is available via "PlatformIO Home > Project Inspect" RAM: [== ] 22.4% (used 73492 bytes from 327680 bytes) Flash: [====== ] 64.8% (used 1357937 bytes from 2097152 bytes) Building .pio/build/m5stickc-plus/firmware.bin esptool.py v4.11.0 Creating esp32 image... Merged 27 ELF sections Successfully created esp32 image. Configuring upload protocol... AVAILABLE: cmsis-dap, esp-bridge, esp-prog, espota, esptool, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa CURRENT: upload_protocol = esptool Looking for upload port... Auto-detected: /dev/cu.usbserial-8D52B9E74F Uploading .pio/build/m5stickc-plus/firmware.bin esptool.py v4.11.0 Serial port /dev/cu.usbserial-8D52B9E74F Connecting.... Chip is ESP32-PICO-D4 (revision v1.1) Features: WiFi, BT, Dual Core, 240MHz, Embedded Flash, VRef calibration in efuse, Coding Scheme None Crystal is 40MHz MAC: c8:85:41:68:33:64 Uploading stub... Running stub... Stub running... Changing baud rate to 1500000 Changed. Configuring flash size... Flash will be erased from 0x00001000 to 0x00005fff... Flash will be erased from 0x00008000 to 0x00008fff... Flash will be erased from 0x0000e000 to 0x0000ffff... Flash will be erased from 0x00010000 to 0x0015dfff... SHA digest in image updated Compressed 17536 bytes to 12202... Writing at 0x00001000... (100 %) Wrote 17536 bytes (12202 compressed) at 0x00001000 in 0.3 seconds (effective 508.2 kbit/s)... Hash of data verified. Compressed 3072 bytes to 134... Writing at 0x00008000... (100 %) Wrote 3072 bytes (134 compressed) at 0x00008000 in 0.0 seconds (effective 614.0 kbit/s)... Hash of data verified. Compressed 8192 bytes to 47... Writing at 0x0000e000... (100 %) Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.1 seconds (effective 978.3 kbit/s)... Hash of data verified. Compressed 1364512 bytes to 839192... Writing at 0x00010000... (1 %) Writing at 0x0001a80f... (3 %) Writing at 0x00028017... (5 %) Writing at 0x0003292e... (7 %) Writing at 0x0003e689... (9 %) Writing at 0x000502f9... (11 %) Writing at 0x00056ec5... (13 %) Writing at 0x0005ccdc... (15 %) Writing at 0x00062782... (17 %) Writing at 0x00067e70... (19 %) Writing at 0x0006da7d... (21 %) Writing at 0x000733ed... (23 %) Writing at 0x00078dab... (25 %) Writing at 0x0007ebe2... (26 %) Writing at 0x000847ae... (28 %) Writing at 0x00089e32... (30 %) Writing at 0x0008f4b7... (32 %) Writing at 0x00094acf... (34 %) Writing at 0x00099e5f... (36 %) Writing at 0x000a0180... (38 %) Writing at 0x000a5a46... (40 %) Writing at 0x000ab4ec... (42 %) Writing at 0x000b1467... (44 %) Writing at 0x000b6c9f... (46 %) Writing at 0x000bc3b8... (48 %) Writing at 0x000c1df7... (50 %) Writing at 0x000c752b... (51 %) Writing at 0x000cd0da... (53 %) Writing at 0x000d2e64... (55 %) Writing at 0x000d90d8... (57 %) Writing at 0x000dfa7d... (59 %) Writing at 0x000e52f6... (61 %) Writing at 0x000eaea2... (63 %) Writing at 0x000f03b6... (65 %) Writing at 0x000f5902... (67 %) Writing at 0x000fb2b7... (69 %) Writing at 0x001003f2... (71 %) Writing at 0x00106373... (73 %) Writing at 0x0010c1d2... (75 %) Writing at 0x0011221b... (76 %) Writing at 0x00117da7... (78 %) Writing at 0x0011d794... (80 %) Writing at 0x0012301d... (82 %) Writing at 0x00128b7c... (84 %) Writing at 0x00130b44... (86 %) Writing at 0x00137ed7... (88 %) Writing at 0x0013ff28... (90 %) Writing at 0x00145a66... (92 %) Writing at 0x0014af92... (94 %) Writing at 0x00150e83... (96 %) Writing at 0x0015619d... (98 %) Writing at 0x0015bd46... (100 %) Wrote 1364512 bytes (839192 compressed) at 0x00010000 in 10.5 seconds (effective 1041.2 kbit/s)... Hash of data verified. Leaving... Hard resetting via RTS pin... ============================================= [SUCCESS] Took 61.01 seconds ============================================= 󰀵 ming …/claude-desktop-buddy   main   v3.13.12(#m5stack)   20:28   in 1m1s232ms ❯ 很快,就刷好了固件。 ...

六月 15, 2026 · Updated 六月 16, 2026 · 7 分钟 · overstarry

Goland 通过 ACP 连接 Claude Code

前言 2025年12月5日,JetBrains 官方正式推出了对 ACP 协议的正式支持,可以通过下载各个 JetBrains IDE 的2025.3 Release Candidate build版本来使用 ACP 协议。 配置 在本文中将以 Goland IDE 为例,介绍如何通过 ACP 协议连接 Claude Code。 安装 Goland 2025.3 Release Candidate build 在 Toolbox 安装 Goland 2025.3 Release Candidate 版本。 配置 打开 AI Chat 工具窗口,目前需要登录才能使用 AI Chat 功能,官方后续会进行调整。在选项卡选择配置 ACP 代理,会创建打开~/.jetbrains/acp.json 文件。 安装配置 Claude Code ACP 代理 使用 pnpm install @zed-industries/claude-code-acp 安装 claude-code-acp。 修改 ~/.jetbrains/acp.json 文件,添加以下内容: { "agent_servers": { "Claude Code Agent": { "command": "pnpx", "args": [ "@zed-industries/claude-code-acp" ], } } } 配置完在 Chat界面选择 Claude Code Agent ...

十二月 6, 2025 · 1 分钟 · overstarry

在 Claude Code 中配置 Augment Context Engine MCP

前言 ACE(Augment Context Engine) 是 Augment 提供的上下文引擎,可以说是 Augment的核心竞争力,12月3号官方正式推出了 ACE MCP,方便在其它 code agent 中使用。 本文将介绍如何在 Claude Code 中配置 ACE MCP。 环境 OS: WSL Ubuntu 24.04 Host OS: Windows 10.0.26100 Claude Code: 2.0.57 (Claude Code) 安装 1 安装 Auggie CLI (Pre-release version) npm install -g @augmentcode/auggie@prerelease 2 登录 augment auggie login 3 打开Claude Code设置 mcp server claude mcp add-json auggie-mcp '{"type":"stdio","command":"auggie","args":["--mcp"],"env":{"AUGMENT_API_TOKEN":"xx","AUGMENT_API_URL":"https://xx.api.augmentcode.com"}}' 4 使用 What is this project ? Please use codebase retrieval tool to get the answer. 询问项目相关的内容,可以看到成功输出了项目相关的介绍。 ...

十二月 3, 2025 · Updated 十二月 4, 2025 · 1 分钟 · overstarry

Midscene

介绍 Midscene.js 是一个开源的 AI 操作助手,适用于 Web、移动端、自动化和测试。 特性 通过自然语言描述目标和步骤,自动生成 UI 自动化脚本 描述你的目标和步骤,Midscene 会为你规划和操作用户界面。 支持 JavaScript SDK 和 YAML 两种脚本格式 跨平台支持 网页自动化:集成 Puppeteer、Playwright 或桥接模式控制桌面浏览器 Android 自动化:通过 adb 控制本地设备 iOS 自动化:通过 WebDriverAgent 控制本地设备 辅助工具 提供可视化测试报告和 Playground 环境,便于调试和回放 支持脚本缓存,提升执行效率 开放 MCP 协议,允许其他 MCP Client 直接调用(支持 Web 和 Android) 三大 API 类型 交互 API:操作用户界面元素 数据提取 API:从 UI 和 DOM 中提取数据 实用 API:提供 aiAssert() 断言、aiLocate() 定位、aiWaitFor() 等待等辅助函数 模型选择 模型最好使用支持视觉的模型,如: gemini, claude, UI-TARS 等模型。本文的案例会使用 Doubao-1.5-UI-TARS 进行介绍。 Doubao-1.5-UI-TARS 是字节跳动开源的一款原生面向图形界面交互(GUI)的 Agent 模型。通过感知、推理和行动等类人的能力,与 GUI 进行无缝交互,非常适合 Midscene.js 使用。 ...

十一月 29, 2025 · 1 分钟 · overstarry

fix Zed go lsp error

前言 前段时间在使用 Zed 编辑器时,出现了 go lsp 启动错误,未能正确找到 go 语言的二进制文件。 本文将一步步从源代码分析修复 Zed 的 go lsp 启动错误。 步骤 从错误信息可以得知,具体的逻辑在 /crates/languages/src/go.rs#L76,可以看到是 delegate.which("go".as_ref()).await.is_none() 方法的返回值为 true,导致 go 语言的二进制文件未找到。 接下来寻找 which 方法的定义位置,可以看到是在 /crates/project/src/lsp_store.rs#L12758,这段代码实现了 LspAdapterDelegate trait 中的 which 方法,用于在系统中查找可执行文件的路径。 修改 which 方法,添加一些日志,以便更好地理解其执行过程。 async fn which(&self, command: &OsStr) -> Option<PathBuf> { let mut worktree_abs_path = self.worktree_root_path().to_path_buf(); if self.fs.is_file(&worktree_abs_path).await { worktree_abs_path.pop(); } let shell_path = self.shell_env().await.get("PATH").cloned(); // Debug output log::info!( "which() called for command: {:?}, worktree_abs_path: {:?}, shell_path: {:?}", command, worktree_abs_path, shell_path ); let result = which::which_in(command, shell_path.as_ref(), worktree_abs_path).ok(); log::info!("which() result for {:?}: {:?}", command, result); result } 重新编译运行 Zed,查看日志: ...

十月 20, 2025 · Updated 十月 21, 2025 · 3 分钟 · overstarry

Building Zed for Windows

前言 本文将介绍如何在 Windows11 上构建 Zed 编辑器。 依赖性 Zed 是由 rust 编写的,因此需要安装 rust 工具链。 安装 Visual Studio 2022 ,安装符合电脑架构的 C++ 工具集。 主要是如下组件: { "version": "1.0", "components": [ "Microsoft.VisualStudio.Component.CoreEditor", "Microsoft.VisualStudio.Workload.CoreEditor", "Microsoft.VisualStudio.Component.VC.Tools.x86.x64", "Microsoft.VisualStudio.Component.Windows11SDK.26100", "Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.CMake", "Microsoft.VisualStudio.Component.VC.CMake.Project", "Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre" ], "extensions": [] } 构建 安装完依赖项后,可以从源代码构建 Zed 编辑器。 Clone Zed Repository gh repo clone overstarry/zed cd zed 构建 debug 版本 cargo run 编译中出现了 ,需要将前面安装的 cmake 添加到环境变量中。 设置完,重新运行 cargo run 即可。 ...

十月 19, 2025 · Updated 十月 21, 2025 · 1 分钟 · overstarry

zed 配置 codex acp

前言 在前面的文章![https://jasminides.com/posts/zed-acp-claude-code/] 介绍了如何在 zed 中 配置 Claude Code, 本文将介绍如何在 zed 编辑器中安装配置使用 codex。 安装 本文使用的环境是 Windows11 下的 wsl,进入 wsl,输入wget https://github.com/zed-industries/codex-acp/releases/download/0.2.4/codex-acp-0.2.4-x86_64-unknown-linux-gnu.tar.gz 下载 codex-acp, 使用 tar -xvf codex-acp-0.2.4-x86_64-unknown-linux-gnu.tar.gz 解压,将解压后的文件移动到 /usr/local/bin 目录下。 配置 codex-acp 的配置很简单,打开 zed 的设置,填入设置: { "agent_servers": { "Custom Codex Agent": { "command": "/usr/local/bin/codex-acp", "args": [], "env": {} } } } 设置完打开 Agent 面板就可以看到外部 Agents 的选项中已有 Custom Codex Agent 选项。 输入消息,顺利得到回复。 小结 本文介绍了如何在 Zed 编辑器中安装和配置 codex-acp,详细说明了下载、解压、移动可执行文件以及在 Zed 设置中添加自定义 Agent 的步骤。通过简单的配置,即可在 Zed 中顺利使用 Codex Agent,提升了编辑器的智能化体验。期待未来官方带来更多 agent 的集成。 ...

十月 10, 2025 · 1 分钟 · overstarry

将 MCP Server 提交到 MCP Registry

前言 MCP Registry 是 MCP 官方提供的一个 提供 MCP Server 的平台,开发者可以将自己开发的 MCP Server 提交到 MCP Registry 以便其他用户可以方便的使用,MCP Registry 于 2025年 9月 8号推出了预览版,本文就讲述如何将自己开发的 MCP Server 提交到 MCP Registry。 提交 MCP Server 本文所使用的 MCP Server 是 qweather-mcp-go ,是一个使用 Node.js 开发的 MCP Server, 环境是 windows 11, 其他系统类似。 安装 Publisher CLI 要提交 MCP Server 需要使用安装使用 Publisher CLI macOS/Linux/WSL 使用 Homebrew 安装: brew install mcp-publisher macOS/Linux/WSL 使用预编译的二进制文件安装: # 下载最新版本的预编译二进制文件 curl -L "https://github.com/modelcontextprotocol/registry/releases/download/v1.0.0/mcp-publisher_1.0.0_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher && sudo mv mcp-publisher /usr/local/bin/ macOS/Linux/WSL 使用源码安装: 需要 Git、Make 和 Go 1.24 以上版本 ...

九月 10, 2025 · Updated 九月 18, 2025 · 2 分钟 · overstarry

Zed acp-claude-code

前言 zed 在 0.201.4 版本推出了应用 Agent Client Protocol (ACP) 协议的第一个正式版本,Agent Client Protocol (ACP) 是一个将外部 Agents 与编辑器集成的开放协议,zed 在这个版本中集成了 Google Gemini CLI , 开发者可以自己开发兼容 ACP 的自定义代理,本文就是讲述如何安装配置 acp-claude-code 以在 zed 更方便的使用 Claude Code. 配置 acp-claude-code 的配置很简单,打开 zed 的设置,填入设置: { "agent_servers": { "Claude Code": { "command": "npx", "args": ["acp-claude-code"] } } } 设置完打开 Agent 面板就可以看到外部 Agents的选项中已有 Claude Code 选项。 新建 Claude Code 线程,发现报错了,提示 program not found 。 根据以往的经验,这种错误主要发生在 windows 系统上,windows 系统的用户应该使用如下配置。 ...

九月 1, 2025 · 1 分钟 · overstarry

Enhancing qweather-mcp-go

前言 Claude Code 是 Anthropic 公司开发的 AI 编程工具,它在终端运行,能理解整个项目架构,通过自然语言指令进行代码生成、Bug 修复、Git 操作和自动化开发流程,显著提升开发效率。它支持 macOS、Ubuntu 和 Windows (WSL),并提供按量付费或包月订阅模式。 本文将使用 Claude Code 来增强 qweather-mcp-go 项目,qweather-mcp-go 是一个 mcp 工具,可以方便的查询天气情况等数据。本文将一步步使用 Claude Code 来为 qweather-mcp-go 添加 Streamable HTTP 的支持。 开始 开始编写代码之前,介绍一下使用的工具及环境: 开发工具: zed mcp: context7 、 server-sequential-thinking AI 编程工具: claude code 模型: claude-sonnet-4 qweather-mcp-go 当前只支持 stdio 和 sse 协议,我们来为它添加 streamable http 的支持。 初始化项目 打开终端,输入 /init 初始化项目,会在项目中生成 CLAUDE.md 文件,使 Claude Code 能够快速理解项目。 实现 在 Claude Code 中输入以下内容: 请按照以下步骤实现 Streamable HTTP 支持: 1. 首先阅读 GitHub issue:https://github.com/overstarry/qweather-mcp-go/issues/4,理解具体的需求和期望的功能 2. 使用 context7 工具获取 github.com/mark3labs/mcp-go 库中与 Streamable HTTP 相关的 API 文档,重点关注: - 流式 HTTP 请求和响应的接口定义 - 相关的结构体、方法和配置选项 - 使用示例和最佳实践 3. 基于获取的文档信息,分析当前 qweather-mcp-go 项目的代码结构,确定需要修改的文件和组件 4. 提出一个详细的实现方案,包括: - 需要实现的具体功能点 - 代码架构设计 - 主要的实现步骤 - 可能遇到的技术挑战和解决方案 5. 在开始编码前,先展示完整的实现计划供确认 输入后可以看到 Claude Code 会创建计划来一步步实现需求。 ...

八月 15, 2025 · Updated 九月 1, 2025 · 1 分钟 · overstarry