<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Paimon</title>
    <description>The latest articles on DEV Community by Paimon (@paimon_573760ccaa1b3492b4).</description>
    <link>https://dev.to/paimon_573760ccaa1b3492b4</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3471220%2Fa188e842-2518-463a-b0a7-b65214425aaf.png</url>
      <title>DEV Community: Paimon</title>
      <link>https://dev.to/paimon_573760ccaa1b3492b4</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/paimon_573760ccaa1b3492b4"/>
    <language>en</language>
    <item>
      <title>Nous Research Hermes Agent: Setup and Tutorial Guide</title>
      <dc:creator>Paimon</dc:creator>
      <pubDate>Sun, 31 May 2026 05:32:31 +0000</pubDate>
      <link>https://dev.to/paimon_573760ccaa1b3492b4/nous-research-hermes-agent-setup-and-tutorial-guide-2glg</link>
      <guid>https://dev.to/paimon_573760ccaa1b3492b4/nous-research-hermes-agent-setup-and-tutorial-guide-2glg</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hermes-agent-2026-05-15"&gt;Hermes Agent Challenge&lt;/a&gt;: Write About Hermes Agent&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Learn how to install and set up Hermes Agent, the open-source AI agent by Nous Research that remembers, learns, and grows smarter with every task.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;OpenClaw launched with a lot of hype and security concerns. After that, there were so many copycats claiming to solve different problems related to OpenClaw. Key among them is security due to the size of the repo. Another major problem was the cost of running the agent. From my own experiences, the cost can go up pretty fast, particularly because even the OpenClaw creator recommends using top-tier models such as Claude Opus 4.6 to prevent prompt injection. Opus 4.6 is not a cheap model, particularly when your agent has to send a lot of context in terms of memories and skills. Enter the Hermes Agent. &lt;/p&gt;

&lt;p&gt;I have been following the creators of Hermes Agent on X/Twitter, and one of the things they claim is that their agent is better than OpenClaw at using open-source models. They claim that open-source models can be used effectively if they have the right harness. In this article, I will examine these claims by trying out the agent. I will walk you through the installation steps, how to use it with local and online models, and how to use it in a research project. &lt;/p&gt;

&lt;h2&gt;
  
  
  What Is Hermes Agent?
&lt;/h2&gt;

&lt;p&gt;Hermes Agent is an open-source OpenClaw alternative by Nous Research, the lab behind Hermes models. After launch, it became very popular, getting over 30K stars at the time of this writing.  Hermes Agent is a bit different from OpenClaw in that it can create skills from experience, improve itself, and persist the knowledge across sessions. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqbuk49bgq2gnlnekljwz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqbuk49bgq2gnlnekljwz.png" alt=" " width="800" height="900"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Hermes Agent key capabilities
&lt;/h2&gt;

&lt;p&gt;Let’s discuss some of Hermes Agent's key capabilities. &lt;br&gt;
Closed learning loop and self-improving memory&lt;br&gt;
The Hermes Agent has a closed learning loop, meaning that: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It has agent-curated memory with periodic nudges &lt;/li&gt;
&lt;li&gt;Craete's skills automatically after performing complex tasks &lt;/li&gt;
&lt;li&gt;Improves skills as it uses them &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hermes Agent also stores messaging sessions in a SQLite database with FTS5 full-text search.  This enables it to retrieve memories from weeks ago, even if they're not currently in memory.&lt;/p&gt;

&lt;p&gt;Hermes also uses an Honcho memory that gives the agent a persistent understanding of users across sessions. This is in addition to the memory.md and user.md files to enhance the agent's understanding of user preferences, goals, communication style, and retain context across conversations. &lt;/p&gt;
&lt;h2&gt;
  
  
  Context compression and caching
&lt;/h2&gt;

&lt;p&gt;One of the main problems of using these AI assistants is how token-intensive they are. When you pay for each API call, it can quickly become very expensive. Hermes Agent uses dual compression and Anthropics prompt caching to manage context usage across long conversations. &lt;/p&gt;

&lt;p&gt;This mechanism also prevents API failures when the context is too big. It works by pruning old results and summarizing conversations using an LLM. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8lultg4wonw1frsbbcwh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8lultg4wonw1frsbbcwh.png" alt=" " width="800" height="204"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Skills system
&lt;/h2&gt;

&lt;p&gt;Like OpenClaw, the Hermes Agent supports skills. The skills are compatible with agentskills.io and follow a progressive disclosure pattern to minimize token utilization. It ships with bundled skills and also saves its own skills as you use it. All skills are stored in ~/.hermes/skills/, but you can also point the agent to external skills. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F25dfvccvvgy2b70gcvet.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F25dfvccvvgy2b70gcvet.png" alt=" " width="800" height="384"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Multi-platform gateway
&lt;/h2&gt;

&lt;p&gt;The Hermes Agent supports multiple platforms, including Telegram, Discord, Slack, Signal, and WhatsApp. It also supports voice memo transcription. Since sessions go to the same database, it means that you can start a conversation on your terminal and continue it on Telegram. &lt;/p&gt;
&lt;h2&gt;
  
  
  Subagents and parallel workstreams
&lt;/h2&gt;

&lt;p&gt;The Hermes Agent has a delegate_task tool that is used to start multiple subagents. Agents have restricted toolsets and terminal sessions. They start a new conversation and have no information about the conversation history; therefore, you have to provide all the information the agent needs to achieve its goal. You can use this to, for example, research multiple topics at the same time and collect summaries, code review, and fix and refactor multiple files at the same time. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdldx7k19frffvqrse7t6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdldx7k19frffvqrse7t6.png" alt=" " width="800" height="644"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  MCP support and extended tool access
&lt;/h2&gt;

&lt;p&gt;For any tool missing in Hermes, you can connect to MCPs. You can use this for connecting to APIs, a database, or a company system without having to change the Hermes Agent code. You can use them by: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Installing MCP support on Hermes &lt;/li&gt;
&lt;li&gt;Adding an MCP server &lt;/li&gt;
&lt;li&gt;Whitelist what the tools expose that the MCP can do &lt;/li&gt;
&lt;li&gt;Blacklist dangerous activities, such as deleting customers &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  RL training and trajectory generation
&lt;/h2&gt;

&lt;p&gt;Hermes Agent includes an integrated RL (Reinforcement Learning) training pipeline built on Tinker-Atropos. This enables training of LLMs on a specific environment using GRPO (Group Relative Policy Optimization) with LoRA adapters. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmbnhm93j9g7adnnwteqj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmbnhm93j9g7adnnwteqj.png" alt=" " width="800" height="132"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  How Hermes Agent Compares to Standard AI Assistants
&lt;/h2&gt;

&lt;p&gt;Let’s now discuss how Hermes Agent compares to other AI assistants such as OpenClaw and Nanobot. &lt;/p&gt;

&lt;p&gt;Like other agents, Hermes Agent users memory.md and user.md for persistent memory. It also goes further by storing each session in a SQLite database, making it possible to reference any conversation in the future. &lt;/p&gt;

&lt;p&gt;Like OpenClaw, Hermes Agent also supports a fallback model that will handle the tasks when the primary model is not available. &lt;/p&gt;

&lt;p&gt;Like most AI assistants, Hermes Agent can also be deployed inexpensively on a VPS and accessed from popular messaging platforms. However, one of its main selling points, according to the team at Nous Research, is that Hermes agent is a better harness for open source models. &lt;/p&gt;

&lt;p&gt;You can also explore other AI assistants, such as NanoBot from our Nanobot Tutorial. &lt;/p&gt;
&lt;h2&gt;
  
  
  Supported Models and Endpoints
&lt;/h2&gt;

&lt;p&gt;The Hermes Agent is model agnostic. Supported models included: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Models from Nous Portal &lt;/li&gt;
&lt;li&gt;OpenRouter via an API key &lt;/li&gt;
&lt;li&gt;Anthropic Auth and API key &lt;/li&gt;
&lt;li&gt;OpenAI subscription or API key &lt;/li&gt;
&lt;li&gt;Gemini 
You can also use local models via Ollama. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwc5d0fjf1rlx13terels.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwc5d0fjf1rlx13terels.png" alt=" " width="799" height="484"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Prerequisites for Running Hermes Agent
&lt;/h2&gt;

&lt;p&gt;Hermes runs on Linux, macOS, and WSL2. It also requires Python 3.11 and Node.js, but most of the dependencies are installed automatically during setup. &lt;/p&gt;
&lt;h2&gt;
  
  
  Hermes Agent Step-by-Step Tutorial: Building A "Research Agent"
&lt;/h2&gt;

&lt;p&gt;Let’s now discover how to use Hermes Agent to create a research agent that can search the web and send you a daily briefing on Telegram. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Install Hermes Agent&lt;/strong&gt;&lt;br&gt;
Open your terminal and run the one-line installer:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F09glytoi382lgtjeqd54.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F09glytoi382lgtjeqd54.png" alt=" " width="799" height="288"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Step 2: Get your interface token&lt;/strong&gt;&lt;br&gt;
For the Telegram gateway, open Telegram and search for &lt;a class="mentioned-user" href="https://dev.to/botfather"&gt;@botfather&lt;/a&gt;. Send it /newbot, follow the prompts to name your bot, and it will give you a bot token that looks like &lt;code&gt;123456789:AAH&lt;/code&gt;. Copy it for the next steps.&lt;/p&gt;

&lt;p&gt;Next user the &lt;code&gt;@userinfobot&lt;/code&gt; to get your Telegram user ID. You will need so that your bot only talks to you. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Initialize&lt;/strong&gt;&lt;br&gt;
Run the setup wizard:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hermes setup
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When you choose Full Setup, you will be able to configure everything, including API keys and the Telegram bot.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4f7k7yymx9hh9tbbms8v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4f7k7yymx9hh9tbbms8v.png" alt=" " width="800" height="344"&gt;&lt;/a&gt;&lt;br&gt;
A menu will be provided so that you can configure all the items as shown below: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5dbi559lymlkfa15yjr4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5dbi559lymlkfa15yjr4.png" alt=" " width="800" height="966"&gt;&lt;/a&gt;&lt;br&gt;
If you have an existing OpenClaw installation, it also allows you to migrate it. &lt;br&gt;
Once setup completes, you can verify everything with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hermes doctor
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy3fb0ly3ti4tq57wyd02.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy3fb0ly3ti4tq57wyd02.png" alt=" " width="648" height="536"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Step 4: Configuration and model selection&lt;/strong&gt;&lt;br&gt;
If you followed the steps above, you will already have set up the model, but you can change it anytime by running the command below on the terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hermes model
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fau77kj4dpzo92kt3ukpz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fau77kj4dpzo92kt3ukpz.png" alt=" " width="677" height="633"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Step 5: Set up the gateway&lt;/strong&gt;&lt;br&gt;
The gateway is what lets Hermes reach you on Telegram instead of requiring you to stay in your terminal. Set it up by running:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hermes gateway setup
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo6d0zt2v2kzarbe9f0l3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo6d0zt2v2kzarbe9f0l3.png" alt=" " width="800" height="634"&gt;&lt;/a&gt;&lt;br&gt;
At this point, you should be able to send messages from Telegram and get responses: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fostbqrf5vl5fc83clr3x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fostbqrf5vl5fc83clr3x.png" alt=" " width="800" height="802"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Leveling Up Hermes Agent: The "Multi-Tool" Agent
&lt;/h2&gt;

&lt;p&gt;As you can see from the above response, Hermes used the terminal tool to query Yahoo Finance’s public chart API and parse the response. We can improve its web search capabilities by configuring one of the available web search tools; in this case, let’s use FireCrawl. Head over to their website and obtain an AI key for free. &lt;br&gt;
Next, set up the key:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hermes config &lt;span class="nb"&gt;set &lt;/span&gt;FIRECRAWL_API_KEY your_fire-crawl_key
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With that in place, I gave Hermes a task that involved searching multiple pages and summarizing the results. As you can see from the image, it planned 3 tasks and delegeted them. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiupecbvgb8b120rs7enj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiupecbvgb8b120rs7enj.png" alt=" " width="721" height="1064"&gt;&lt;/a&gt;&lt;br&gt;
The other way to run multiple agents with Hermes is to set up profiles. This will allow you to run multiple independent Hermes agents on the same machine, with each getting its own config, API Keys, memory, sessions, gateway, and skills. For example, you can have: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A coding agent &lt;/li&gt;
&lt;li&gt;A Personal assistant &lt;/li&gt;
&lt;li&gt;A research agent
You can create one from scratch or by cloning the existing settings:
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hermes profile create work &lt;span class="nt"&gt;--clone&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7lpmv7u1zm1wmmgj8p2g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7lpmv7u1zm1wmmgj8p2g.png" alt=" " width="767" height="282"&gt;&lt;/a&gt;&lt;br&gt;
Run &lt;code&gt;work chat&lt;/code&gt; to start talking to the bot:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwazetx283rxf4dsmrfm4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwazetx283rxf4dsmrfm4.png" alt=" " width="799" height="621"&gt;&lt;/a&gt;&lt;br&gt;
Each agent gets its own &lt;code&gt;.env&lt;/code&gt; so you can set up different Telegram bots. You can set up using &lt;code&gt;work setup&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffgg5p01u282lebba9kuk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffgg5p01u282lebba9kuk.png" alt=" " width="800" height="541"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Deployment Options: Running Hermes Agent Beyond Your Laptop
&lt;/h2&gt;

&lt;p&gt;Let’s now discover which deployment options exist for running Hermes Agent apart from using it on your laptop. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Other options include:&lt;/strong&gt;&lt;br&gt;
Running it on a dedicated computer, which is not your daily driver. &lt;br&gt;
Deploying on a VPS, such as on Modal and Daytona. &lt;br&gt;
Even when deploying on a VPS, it's good to follow these best practices:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use the container backend &lt;/li&gt;
&lt;li&gt;Set explicit allowlists &lt;/li&gt;
&lt;li&gt;Use pairing codes instead of user ID &lt;/li&gt;
&lt;li&gt;Store secrets securely with proper file permissions &lt;/li&gt;
&lt;li&gt;Regularly update your agent using hermes update &lt;/li&gt;
&lt;li&gt;Never run the agent as root user &lt;/li&gt;
&lt;li&gt;Set appropriate resource limits for CPU, disk, and memory&lt;/li&gt;
&lt;li&gt;Monitor logs for unauthorized access attempts &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Local and Private: Running Hermes Agent Offline
&lt;/h2&gt;

&lt;p&gt;You can run Hermes Agent offline by setting up a model via Ollama. The code snippet below shows how to run and server qwen2.5-coder:32b via Ollama:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Install and run a model&lt;/span&gt;
ollama pull qwen2.5-coder:32b
ollama serve   &lt;span class="c"&gt;# Starts on port 11434&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then configure Hermes to use the model:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hermes model
&lt;span class="c"&gt;# Select "Custom endpoint (self-hosted / VLLM / etc.)"&lt;/span&gt;
&lt;span class="c"&gt;# Enter URL: http://localhost:11434/v1&lt;/span&gt;
&lt;span class="c"&gt;# Skip API key (Ollama doesn't need one)&lt;/span&gt;
&lt;span class="c"&gt;# Enter model name (e.g. qwen2.5-coder:32b)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Also, make sure to increase the context window because the model needs to load the system prompt, tools, and return a response.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Option 1: Set server-wide via environment variable (recommended)&lt;/span&gt;
&lt;span class="nv"&gt;OLLAMA_CONTEXT_LENGTH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;32768 ollama serve

&lt;span class="c"&gt;# Option 2: For systemd-managed Ollama&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;systemctl edit ollama.service
&lt;span class="c"&gt;# Add: Environment="OLLAMA_CONTEXT_LENGTH=32768"&lt;/span&gt;
&lt;span class="c"&gt;# Then: sudo systemctl daemon-reload &amp;amp;&amp;amp; sudo systemctl restart ollama&lt;/span&gt;

&lt;span class="c"&gt;# Option 3: Bake it into a custom model (persistent per-model)&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="s2"&gt;"FROM qwen2.5-coder:32b&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;PARAMETER num_ctx 32768"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; Modelfile
ollama create qwen2.5-coder-32k &lt;span class="nt"&gt;-f&lt;/span&gt; Modelfile
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4uovvrzo6q5rcc2iaqft.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4uovvrzo6q5rcc2iaqft.png" alt=" " width="799" height="555"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Hermes Agent Common Pitfalls and Troubleshooting
&lt;/h2&gt;

&lt;p&gt;Let’s now talk about some common problems that you may encounter when using the Hermes agent. &lt;/p&gt;

&lt;h3&gt;
  
  
  Connection refused errors
&lt;/h3&gt;

&lt;p&gt;Run hermes doctor first. This will tell you if you are missing any provider config, broken environment variables, or misconfigured paths. You can also run the setup command again to enter your API key again because you may have a typo. &lt;/p&gt;

&lt;h3&gt;
  
  
  Context window limits
&lt;/h3&gt;

&lt;p&gt;Type &lt;code&gt;/compress&lt;/code&gt; to trigger manual context compression.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx0xlym5pvyg7gs7uokfp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx0xlym5pvyg7gs7uokfp.png" alt=" " width="685" height="182"&gt;&lt;/a&gt;&lt;br&gt;
You can also edit &lt;code&gt;~/.hermes/config.yaml&lt;/code&gt; to configure compression defaults.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# In ~/.hermes/config.yaml&lt;/span&gt;
&lt;span class="na"&gt;compression&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;enabled&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
  &lt;span class="na"&gt;threshold&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0.50&lt;/span&gt;    &lt;span class="c1"&gt;# Compress at 50% of context limit by default&lt;/span&gt;
  &lt;span class="na"&gt;summary_model&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;google/gemini-3-flash-preview"&lt;/span&gt;  &lt;span class="c1"&gt;# Model used for summarization&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Skill not triggering or being reused
&lt;/h3&gt;

&lt;p&gt;Check if the skill exists. Run this command to confirm that the instructions in the skills are being used.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hermes chat &lt;span class="nt"&gt;--toolsets&lt;/span&gt; skills &lt;span class="nt"&gt;-q&lt;/span&gt; &lt;span class="s2"&gt;"Use the X skill to do Y"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Gateway not receiving messages&lt;br&gt;
Run &lt;code&gt;hermes gateway status&lt;/code&gt; to check if it is running. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0n8fjp837wig5wp4m9g7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0n8fjp837wig5wp4m9g7.png" alt=" " width="800" height="407"&gt;&lt;/a&gt;&lt;br&gt;
If it has stopped, start it with &lt;code&gt;hermes gateway start&lt;/code&gt;. &lt;/p&gt;

&lt;h3&gt;
  
  
  Model endpoint authentication failures
&lt;/h3&gt;

&lt;p&gt;Check &lt;code&gt;~/.hermes/.env&lt;/code&gt; to verify that your API keys are correct. Run hermes model to ensure that the model selected has the correct API key. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftwzx9l7b8uhd3lwi9ljf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftwzx9l7b8uhd3lwi9ljf.png" alt=" " width="800" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Future Outlook
&lt;/h2&gt;

&lt;p&gt;If you have been following the Twitter agents' war, you might have noticed that there are two camps: one is for using agents with APIs, and the other for running agents using local models. The local models camp is very vocal in advocating for Hermes Agent, which they claim is a better harness for local models compared to OpenClaw. &lt;/p&gt;

&lt;p&gt;Whichever camp you support, one thing is clear: running agents is not cheap. Therefore, if there is a tool that can run local models and provide performance that is close to a top-tier model, then that tool is worth looking at. Especially now with metered usage across all model providers. &lt;/p&gt;

&lt;p&gt;With the current demand for agents, users who want unlimited usage will gravitate towards a tool that can offer the best results. As of this moment, many people on Twitter are claiming that Hermes Agent is that tool. Whether local models actually reduce the demand for APIs remains to be seen, especially because not all users have personal GPUs and are technical enough to set them up for local usage. &lt;/p&gt;

</description>
      <category>hermesagentchallenge</category>
      <category>devchallenge</category>
      <category>agents</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Paimon</dc:creator>
      <pubDate>Sun, 26 Apr 2026 10:15:59 +0000</pubDate>
      <link>https://dev.to/paimon_573760ccaa1b3492b4/-4ldc</link>
      <guid>https://dev.to/paimon_573760ccaa1b3492b4/-4ldc</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/paimon_573760ccaa1b3492b4/openclaw-heres-the-best-setup-guide-youll-ever-need-23ee" class="crayons-story__hidden-navigation-link"&gt;OpenClaw - Here's the best setup guide you'll ever need.&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
      &lt;a href="https://dev.to/paimon_573760ccaa1b3492b4/openclaw-heres-the-best-setup-guide-youll-ever-need-23ee" class="crayons-article__context-note crayons-article__context-note__feed"&gt;&lt;p&gt;OpenClaw Challenge Submission 🦞&lt;/p&gt;

&lt;/a&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/paimon_573760ccaa1b3492b4" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3471220%2Fa188e842-2518-463a-b0a7-b65214425aaf.png" alt="paimon_573760ccaa1b3492b4 profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/paimon_573760ccaa1b3492b4" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Paimon
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Paimon
                
              
              &lt;div id="story-author-preview-content-3552865" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/paimon_573760ccaa1b3492b4" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3471220%2Fa188e842-2518-463a-b0a7-b65214425aaf.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Paimon&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/paimon_573760ccaa1b3492b4/openclaw-heres-the-best-setup-guide-youll-ever-need-23ee" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 26&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/paimon_573760ccaa1b3492b4/openclaw-heres-the-best-setup-guide-youll-ever-need-23ee" id="article-link-3552865"&gt;
          OpenClaw - Here's the best setup guide you'll ever need.
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devchallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devchallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/openclawchallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;openclawchallenge&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/paimon_573760ccaa1b3492b4/openclaw-heres-the-best-setup-guide-youll-ever-need-23ee" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;10&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/paimon_573760ccaa1b3492b4/openclaw-heres-the-best-setup-guide-youll-ever-need-23ee#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            8 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>OpenClaw - Here's the best setup guide you'll ever need.</title>
      <dc:creator>Paimon</dc:creator>
      <pubDate>Sun, 26 Apr 2026 10:15:49 +0000</pubDate>
      <link>https://dev.to/paimon_573760ccaa1b3492b4/openclaw-heres-the-best-setup-guide-youll-ever-need-23ee</link>
      <guid>https://dev.to/paimon_573760ccaa1b3492b4/openclaw-heres-the-best-setup-guide-youll-ever-need-23ee</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/openclaw-2026-04-16"&gt;OpenClaw Writing Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;before you install anything&lt;/p&gt;

&lt;p&gt;straight in - you need three things ready before you even touch a terminal.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;AI model API key&lt;/strong&gt;&lt;br&gt;
openclaw works with multiple model providers. &lt;br&gt;
you're not locked to one. &lt;br&gt;
here's what's available right now:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;and my pick - &lt;strong&gt;anthropic&lt;/strong&gt; (claude) - the best overall for agents. opus 4.6 is the smartest model available and what i recommend for setup. sonnet 4.6 is cheaper and handles everyday tasks well. console.anthropic.com&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;openai&lt;/strong&gt; (GPT-5.4) - strong alternative. great tool calling, solid all-rounder. a lot of people switched here last week when anthropic cut off subscription access - also where the founder of OpenClaw now works. platform.openai.com&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;google&lt;/strong&gt; (gemini 2.5 pro) - good for long context tasks. generous free tier to get started. worth having as a backup or starting point if budget is tight. aistudio.google.com&lt;/li&gt;
&lt;li&gt;*&lt;em&gt;ollama *&lt;/em&gt;(local models) - run gemma 4 or other open source models directly on your machine. completely free. not frontier quality but handles routine agent tasks without breaking a sweat&lt;/li&gt;
&lt;li&gt;*&lt;em&gt;deepseek *&lt;/em&gt;- strong reasoning model from china. very competitive pricing. worth looking at if you want a cheaper alternative to opus for complex tasks&lt;/li&gt;
&lt;/ol&gt;


&lt;/li&gt;

&lt;/ol&gt;

&lt;p&gt;my recommendation: start with anthropic (opus 4.6) as your primary. it's the king of models for agent work. load $250 in API credits to get from zero to fully operational without hitting rate limits - new API customers get lower limits by default and putting real money in upfront avoids that bottleneck while you're building. even $50 gets you started if budget is tight.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;a groq API key&lt;/strong&gt; (for voice notes)&lt;br&gt;
this is separate from your main model. groq powers the voice note transcription through the whisper plugin - it's how your agent understands your voice messages on telegram. you'll use this constantly.&lt;br&gt;
it's free. sign up at console.groq.com and grab your API key.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;a web search API key&lt;/strong&gt;&lt;br&gt;
your agent needs to search the internet. here are your options:&lt;br&gt;
brave search - ~$5/month. reliable, fast, best value for money. my recommendation. brave.com/search/api&lt;br&gt;
tavily - has a free tier. built specifically for AI agents. tavily.com&lt;br&gt;
firecrawl - search plus full page scraping in one tool. firecrawl.dev&lt;br&gt;
SearXNG - completely free. self-hosted. more setup work but zero cost forever&lt;br&gt;
my recommendation: brave search. it's been the most reliable and the best bang for your buck in my experience. if you want completely free, tavily's free tier works.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  installing openclaw
&lt;/h3&gt;

&lt;p&gt;open terminal and run:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;on windows (powershell):
&lt;code&gt;iwr -useb https://openclaw.ai/install.ps1 | iex&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;if you're on a brand new mac mini or mac device, you might need to install homebrew first, using this terminal prompt:
&lt;code&gt;/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;once openclaw is installed, run the setup wizard:&lt;br&gt;
&lt;code&gt;openclaw onboard&lt;/code&gt;&lt;br&gt;
this walks you through everything step by step. here's what to pick:&lt;br&gt;
provider: select anthropic and paste your API key.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fix2fhlh017qki8hixey1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fix2fhlh017qki8hixey1.png" alt=" " width="640" height="954"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;model: select opus 4.6. or whichever model you're choosing - but opus is what i recommend for the setup phase. you want the smartest brain available while you're building the foundations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi1mrel47wbgasu9zpzlc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi1mrel47wbgasu9zpzlc.png" alt=" " width="688" height="588"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;communications&lt;/strong&gt;: you'll be asked to set up a messaging platform. for this guide we're going with telegram - it's honestly the easiest. but you can skip this step if you want. i actually find it easier to do the telegram part manually in its own step later since you need to pair it anyway.&lt;br&gt;
skills to preload: this is where most guides just say "install clawhub" and move on. don't do that. install these:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy1tfm72l92beq58hrimf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy1tfm72l92beq58hrimf.png" alt=" " width="800" height="807"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;clawhub - the skill marketplace&lt;/li&gt;
&lt;li&gt;mcporter - MCP tool routing&lt;/li&gt;
&lt;li&gt;openai-whisper - voice transcription (essential for voice notes)&lt;/li&gt;
&lt;li&gt;model-usage - track what your agent is spending&lt;/li&gt;
&lt;li&gt;github - if you use git at all, get this in now&lt;/li&gt;
&lt;li&gt;nano-pdf - PDF reading and processing
additional APIs (notion, elevenlabs, etc): skip all of these. you don't need them yet.
hooks: enable all four:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpai1wvoar9f4ssr8bkya.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpai1wvoar9f4ssr8bkya.png" alt=" " width="580" height="294"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;boot-md - loads your config files on startup&lt;/li&gt;
&lt;li&gt;bootstrap extra files - sets up your workspace structure&lt;/li&gt;
&lt;li&gt;command-logger - tracks what your agent runs&lt;/li&gt;
&lt;li&gt;session-memory - remembers context across sessions
once you continue through these steps, you should see the option to hatch in TUI. this is the moment your agent comes to life in the terminal chat window. do it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;say hello. give it a name. watch it respond.&lt;br&gt;
that first reply is a proper magic moment. enjoy it.&lt;/p&gt;

&lt;h3&gt;
  
  
  connecting telegram
&lt;/h3&gt;

&lt;p&gt;now you've got a living agent in your terminal. but you don't want to live in the terminal. you want it on your phone.&lt;br&gt;
here's the move. tell your agent exactly this:&lt;br&gt;
"okay [agent name], we're going to use telegram to finish setting up and onboarding. next i will send you the API key for my telegram bot and you can install the telegram communication skill for me using it."&lt;br&gt;
now go set up the bot:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdo21pz78zwqvc19a0fas.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdo21pz78zwqvc19a0fas.png" alt=" " width="594" height="100"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;open telegram and message &lt;a class="mentioned-user" href="https://dev.to/botfather"&gt;@botfather&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;send /newbot&lt;/li&gt;
&lt;li&gt;pick a name and username for your bot&lt;/li&gt;
&lt;li&gt;BotFather gives you an API key - copy it
go back to your agent in the TUI and paste the API key in with the message above (or right after it). your agent will install the telegram plugin for you.
once it's done, head to telegram and open your new bot. click start - you'll see a PAIR code.
copy that pair code and paste it back to your agent in the TUI. it handles the rest - pairing, syncing, connecting everything.
now go back to telegram and send "hi."
watch your agent reply.
welcome to a much better and cleaner way to communicate with your agent from anywhere and everywhere. this is how i run everything now.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  the best and most practical way to set up your agent from birth
&lt;/h2&gt;

&lt;p&gt;now you have telegram connected, we're going to run through the setup that actually matters. in this order:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;install kickstart&lt;/strong&gt;
i built a skill called kickstart that saves you the first 4 hours of pain in openclaw. it's free on clawhub.
tell your agent:
install the kickstart skill by jordymaui from clawhub
here's what it gives you:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;SOUL.md - your agent's personality file. who it is, how it talks, what it cares about. without this your agent sounds like every other generic chatbot&lt;/li&gt;
&lt;li&gt;USER.md - information about you. your name, timezone, preferences, what platforms you use. your agent reads this so it knows who it's helping&lt;/li&gt;
&lt;li&gt;AGENTS.md - the operating manual. rules for how your agent behaves, when to speak, when to stay quiet, how to handle memory&lt;/li&gt;
&lt;li&gt;TOOLS.md - local notes about your specific setup. camera names, API details, device info - anything unique to your environment&lt;/li&gt;
&lt;li&gt;HEARTBEAT.md - a checklist your agent reviews periodically to stay proactive instead of just waiting for you to ask things&lt;/li&gt;
&lt;li&gt;kickstart doesn't just create these files - it guides your agent through filling them out properly. go ahead, install it and move to the next step.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;install QMD&lt;/strong&gt;&lt;br&gt;
next up - making sure you have QMD installed.&lt;br&gt;
install the QMD skill from clawhub&lt;br&gt;
QMD upgrades your agent's memory system with semantic search. instead of your agent scanning through flat text files trying to find what you said three weeks ago, it can actually search by meaning. "what did i say about the budget?" just works. without QMD, your agent's memory is a filing cabinet with no labels. with it, everything is indexed and searchable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;your onboarding session&lt;/strong&gt;&lt;br&gt;
this is the most exciting part and honestly the step that makes the biggest difference.&lt;br&gt;
here's what i always recommend - from brand new beginners to the companies i've consulted for building openclaw systems. send your agent this:&lt;br&gt;
before we do anything else, i need you to understand who i am and what we're building together. create a questionnaire - no more than 20 direct questions - covering who i am, what i do, how i work, what i need from you, and what your role is going to be. keep the questions short and clear. i'm going to answer all of them in one voice note so make sure they flow naturally as a conversation. after i reply, write everything you learn into your memory files so you never have to ask again.&lt;br&gt;
your agent will come back with a list of questions. now here's the important bit:&lt;br&gt;
reply with a voice note. not text. voice.&lt;br&gt;
talk off the cuff. be casual. pause when you need to think. your agent picks up on how you communicate, what you care about, and what's actually on your mind.&lt;br&gt;
if you're not sure what the agent's use case is yet - just say that. talk to it like it's a mate and you're thinking through potential ideas together. there is genuinely no wrong answer here as long as you're open, honest, and giving it real context about your life.&lt;br&gt;
this one voice note will give your agent more useful information than weeks of typed messages. i learned that the hard way.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  best practices from 500+ hours of daily use
&lt;/h2&gt;

&lt;h3&gt;
  
  
  model routing
&lt;/h3&gt;

&lt;p&gt;don't run everything on opus. it's the best model but you don't need the best for every task.&lt;br&gt;
set up your config so opus handles the complex stuff - reasoning, multi-step tasks, creative work. sonnet or groq handles the routine stuff - calendar checks, simple lookups, monitoring, notifications.&lt;br&gt;
this alone cut my monthly cost in half. your agent routes automatically once it's configured.&lt;/p&gt;

&lt;h3&gt;
  
  
  keep CLAUDE.md short
&lt;/h3&gt;

&lt;p&gt;this file gets re-injected every single message your agent processes. the leaked claude code source confirmed it. if yours is 2000 words of life story, you're burning tokens and confusing your agent on repeat.&lt;br&gt;
mine is 6 lines. name, role, communication style, three rules. everything else lives in skills and memory files where the agent pulls it when it needs it.&lt;/p&gt;

&lt;h3&gt;
  
  
  split agents by job
&lt;/h3&gt;

&lt;p&gt;if you're doing more than 3-4 different things, use separate agents. one agent scanning twitter, managing data, writing content, handling emails, and running cron jobs - it works for about two weeks before context starts bleeding between tasks and everything slows down.&lt;br&gt;
dedicated agents for dedicated jobs. cleaner context, faster responses, fewer mistakes.&lt;/p&gt;

&lt;h3&gt;
  
  
  read your memory files
&lt;/h3&gt;

&lt;p&gt;your agent writes notes about you after every conversation. check them weekly. you'll catch when it has the wrong idea about something before it acts on it. it's like reading your assistant's diary - sometimes spot on, sometimes hilariously wrong.&lt;/p&gt;

&lt;h3&gt;
  
  
  update regularly
&lt;/h3&gt;

&lt;p&gt;nine CVEs dropped for openclaw in one week last month. one scored 9.9 out of 10. run openclaw update weekly. not optional.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>openclawchallenge</category>
    </item>
    <item>
      <title>3D-First Portfolio Built with Antigravity</title>
      <dc:creator>Paimon</dc:creator>
      <pubDate>Sat, 31 Jan 2026 18:28:09 +0000</pubDate>
      <link>https://dev.to/paimon_573760ccaa1b3492b4/3d-first-portfolio-built-with-antigravity-1hmm</link>
      <guid>https://dev.to/paimon_573760ccaa1b3492b4/3d-first-portfolio-built-with-antigravity-1hmm</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/new-year-new-you-google-ai-2025-12-31"&gt;New Year, New You Portfolio Challenge Presented by Google AI&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  About Me
&lt;/h2&gt;

&lt;p&gt;I’m Aayush Bisht, a MERN stack developer with a strong interest in building interactive, visually rich web experiences that combine solid engineering with thoughtful design.&lt;/p&gt;

&lt;p&gt;I enjoy working at the intersection of frontend performance, animation, and system architecture where small details like motion, timing, and interaction can completely change how a product feels.&lt;/p&gt;

&lt;p&gt;For this project, I wanted to move beyond a traditional portfolio and explore how modern tools like &lt;strong&gt;Gemini 3&lt;/strong&gt; and &lt;strong&gt;Google Antigravity&lt;/strong&gt; can support creative and technical decision-making throughout the development process. Instead of using AI only to generate code, I used it to reason about structure, animation flow, and interaction design.&lt;br&gt;
This portfolio reflects how I like to build: ambitious ideas, broken down thoughtfully, executed with care and refined through iteration.&lt;/p&gt;
&lt;h2&gt;
  
  
  Portfolio
&lt;/h2&gt;

&lt;p&gt;This portfolio relies heavily on scroll-driven animation, 3D interaction, and viewport-aware transitions.&lt;br&gt;&lt;br&gt;
For that reason, the best way to experience it is in a full browser window.&lt;/p&gt;


&lt;div class="ltag__cloud-run"&gt;
  &lt;iframe height="600px" src="https://portfolio-v2-709587781727.us-central1.run.app/"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;


&lt;p&gt;Live Portfolio:&lt;br&gt;&lt;br&gt;
&lt;a href="https://portfolio-v2-709587781727.us-central1.run.app/" rel="noopener noreferrer"&gt;https://portfolio-v2-709587781727.us-central1.run.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;--labels dev-tutorial=devnewyear2026&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;This project is a &lt;strong&gt;Next.js 14 interactive 3D portfolio&lt;/strong&gt;, built around a single idea:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Use motion, transformation, and spatial interaction to guide the viewer through a story.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Tech Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Next.js 14 (App Router)&lt;/li&gt;
&lt;li&gt;React 18 + TypeScript&lt;/li&gt;
&lt;li&gt;Tailwind CSS&lt;/li&gt;
&lt;li&gt;GSAP + ScrollTrigger&lt;/li&gt;
&lt;li&gt;Framer Motion&lt;/li&gt;
&lt;li&gt;Spline (3D design &amp;amp; runtime)&lt;/li&gt;
&lt;li&gt;Lenis (smooth scrolling)&lt;/li&gt;
&lt;li&gt;Radix UI + custom UI components&lt;/li&gt;
&lt;li&gt;Deployed on Google Cloud Run&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Using Gemini 3
&lt;/h3&gt;

&lt;p&gt;Gemini 3 played a key role throughout the development process — not by generating finished code, but by helping reason about &lt;em&gt;complex systems&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Gemini was used to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Explore different ways of mapping scroll position to 3D transformations
&lt;/li&gt;
&lt;li&gt;Reason about how a single 3D object could represent multiple sections of a portfolio
&lt;/li&gt;
&lt;li&gt;Evaluate animation pacing and transitions between sections
&lt;/li&gt;
&lt;li&gt;Think through interaction patterns between React state, GSAP timelines, and Spline objects
&lt;/li&gt;
&lt;li&gt;Stress-test ideas before committing to implementation
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Many of the architectural decisions especially around animation sequencing and state-based transformations were refined through iterative conversations with Gemini.&lt;/p&gt;

&lt;h3&gt;
  
  
  Antigravity for Rapid Iteration
&lt;/h3&gt;

&lt;p&gt;While Gemini helped shape ideas, &lt;strong&gt;Antigravity&lt;/strong&gt; made it possible to execute them quickly.&lt;/p&gt;

&lt;p&gt;Antigravity accelerated:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Refactoring large animation orchestrators
&lt;/li&gt;
&lt;li&gt;Iterating on scroll-triggered logic without breaking behavior
&lt;/li&gt;
&lt;li&gt;Maintaining consistency across many interactive components
&lt;/li&gt;
&lt;li&gt;Experimenting with alternate animation flows safely
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This allowed the project to evolve organically without losing structure.&lt;/p&gt;

&lt;h3&gt;
  
  
  The 3D Keyboard System
&lt;/h3&gt;

&lt;p&gt;At the heart of the portfolio is a &lt;strong&gt;Spline-designed mechanical keyboard&lt;/strong&gt;, used as a dynamic visual metaphor.&lt;/p&gt;

&lt;p&gt;The keyboard transforms through multiple states as the user scrolls:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hero&lt;/strong&gt; — subtle rotation and motion to establish presence
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Skills&lt;/strong&gt; — interactive keycaps representing technologies
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Projects&lt;/strong&gt; — dramatic rotation with animated elements
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contact&lt;/strong&gt; — a teardown animation where keycaps break apart
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each keycap is mapped to a real skill and responds to hover and press events, updating live text inside the 3D scene.&lt;/p&gt;

&lt;p&gt;All transformations are orchestrated through GSAP timelines tied directly to scroll position.&lt;/p&gt;

&lt;h3&gt;
  
  
  Designing the Portfolio Around a 3D Model
&lt;/h3&gt;

&lt;p&gt;At the core of this portfolio is a single 3D object: a mechanical keyboard designed in Spline.&lt;/p&gt;

&lt;p&gt;Rather than treating the 3D model as a background visual or decorative element, the entire website was designed &lt;em&gt;around&lt;/em&gt; it. The layout, section flow, scroll behavior, and interactions were all shaped to support how the keyboard transforms and reacts over time.&lt;/p&gt;

&lt;p&gt;Gemini played a key role in reasoning through this model first approach.&lt;/p&gt;

&lt;p&gt;Using Gemini, I explored questions like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How can a single 3D object represent multiple sections of a portfolio?&lt;/li&gt;
&lt;li&gt;What transformations feel natural when transitioning between skills, projects, and contact?&lt;/li&gt;
&lt;li&gt;How should spatial changes (scale, rotation, position) map to scroll progression?&lt;/li&gt;
&lt;li&gt;Where should interaction live in the UI, the 3D scene, or both?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These conversations helped define a system where each section corresponds to a distinct keyboard state, with its own transformation logic and interaction rules.&lt;/p&gt;

&lt;p&gt;The result is a portfolio where the 3D model isn’t an add-on it’s the structural backbone of the experience. Content and motion exist to complement the model, not compete with it.&lt;/p&gt;

&lt;p&gt;Gemini made it possible to think through this complexity before implementation, allowing the final system to feel intentional rather than experimental.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'm Most Proud Of
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Turning a 3D Object Into a Narrative Device
&lt;/h3&gt;

&lt;p&gt;Instead of using 3D as decoration, the keyboard acts as a storytelling element reacting, transforming, and evolving alongside the content.&lt;/p&gt;

&lt;h3&gt;
  
  
  Complex Animation, Controlled Carefully
&lt;/h3&gt;

&lt;p&gt;GSAP handles precision choreography.&lt;br&gt;&lt;br&gt;
Framer Motion handles UI-level interactions.&lt;br&gt;&lt;br&gt;
Spline handles spatial and interactive depth.&lt;/p&gt;

&lt;p&gt;Each tool is used where it excels.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI as an Enabler, Not a Gimmick
&lt;/h3&gt;

&lt;p&gt;There is no visible “AI feature” in the UI.&lt;/p&gt;

&lt;p&gt;Yet AI influenced nearly every decision:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How animations flow&lt;/li&gt;
&lt;li&gt;How interactions feel&lt;/li&gt;
&lt;li&gt;How complexity stays manageable&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Gemini and Antigravity didn’t replace creativity they &lt;strong&gt;amplified it&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;This project is not about building a flashy portfolio.&lt;br&gt;
It’s about exploring what becomes possible when modern frontend engineering, 3D interaction, and AI-assisted reasoning come together.&lt;br&gt;
Gemini 3 and Antigravity made it possible to think bigger, iterate faster, and refine ideas more confidently.&lt;/p&gt;

&lt;p&gt;And that’s the most exciting part.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>googleaichallenge</category>
      <category>portfolio</category>
      <category>gemini</category>
    </item>
  </channel>
</rss>
