Featured

Building a Fully Local, System-Wide AI Agent CLI on Linux

Cloud-based agentic CLI tools are undeniably convenient, but sending internal terminal workflows, system commands, and proprietary files to third-party endpoints is a persistent privacy risk. Running a fully local, autonomous agent directly on your workstation eliminates subscription costs, avoids rate limits, and grants you unconstrained access across all your attached drives. This guide details how to pair Ollama with Open Interpreter on modern Linux (Ubuntu), resolve tricky runtime quirks like Python 3.14 native builds and removed modules, map persistent storage, and create a one-click desktop launcher. System Architecture The setup consists of two layers: Inference Engine (Ollama): Serves local open-weight models with hardware GPU acceleration. Agent Harness (Open Interpreter): Interprets natural language queries, writes code, and executes Bash or Python commands directly on your system. For agentic coding and file management, qwen2.5-coder:14b provides an optimal balance of c...

Flash Firmware on an ESP32-S3


This tutorial outlines the process for flashing firmware onto an ESP32-based device, such as the Echoear robot, using a Linux-based environment 

Prerequisites

You need a .bin file (the firmware) that matches your specific hardware.


You are using a high-quality USB-to-Data cable (some cheap cables are "charge-only").

Install the official Espressif tool:
   ```bash
   pip install esptool
   
   ```
Before plugging in your device, open your terminal. Plug in your device and run the following command to see which serial port it has been assigned:
```bash
ls /dev/ttyACM* /dev/ttyUSB*

```
You are looking for an output like /dev/ttyACM0 or /dev/ttyUSB0. This is the "path" your computer uses to talk to the chip.

To resolve software conflicts, it is best practice to perform a clean sweep of the existing firmware.
```bash
Replace /dev/ttyACM0 with the port you identified in Step 1
esptool --chip esp32s3 --port /dev/ttyACM0 erase-flash

```
Now you will flash your new firmware. You must point esptool to the file location and tell it to write to address 0x0.
```bash
esptool --chip esp32s3 --port /dev/ttyACM0 write-flash -z 0x0 /path/to/your/firmware.bin

```
Understanding the Arguments:
 * --chip: Tells the tool which version of the ESP chip you are using (e.g., esp32s3, esp32c3).
 * -z: Enables compression for faster transmission.
 * 0x0: The starting memory address for a "merged" or "factory" binary.

If you get a permission error, ensure your user is part of the dialout group

sudo usermod -a -G dialout $USER

Perform a full system reboot to apply the changes.

Ensure no other programs (like Arduino IDE, Home Assistant, or a serial monitor) are currently connected to that port.

If esptool cannot find the chip, try holding the BOOT button again while the flash command is running.
Once the process finishes, the device will hard reset automatically. If the flashing was successful, your device should exit the bootloop and begin the initialization sequence of the new firmware.

Comments