# Damian Mee | Blog | Portfolio | About

Recent content on Damian Mee

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Using Hermes Profiles for Family Home Automation via WhatsApp

DevFeed: [Using Hermes Profiles for Family Home Automation via WhatsApp](<https://devfeed.tech/articles/hermes-profiles-are-perfect-for-family-home-automation-38376.md>)

Original publisher: [Read original article](<https://meedamian.com/post/hermes-profiles-family-home-automation/>)

Author: hi@meedamian.com (Damian Mee)

Published: 2026-05-26T00:00:00Z

Content type: tutorial

Language: en

Sources: [Damian Mee | Blog | Portfolio | About](<https://devfeed.tech/sources/damian-mee-blog-portfolio-about.md>)

Topics: [hermes-agent](<https://devfeed.tech/topics/hermes-agent.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [hermes-agent](<https://devfeed.tech/tags/hermes-agent.md>), [home-automation](<https://devfeed.tech/tags/home-automation.md>), [whatsapp](<https://devfeed.tech/tags/whatsapp.md>)

### AI overview

A tutorial on setting up a restricted Hermes profile that lets a family member control home devices through WhatsApp. It covers isolating the profile from higher-risk tools, avoiding WhatsApp bridge conflicts, and providing model credentials.

### Source excerpt

Disclosure: GPT-5.5 wrote the original long version. Grok 4.3 rewrote it into the current shorter form. Both models were running inside Hermes Agent -- the harness, profile system, tool layer, gateway, and memory that actually does the work. The setup is real. The mistakes were real. The OAuth tokens were dramatic. The profile name was changed to protect the guilty. I wanted my mom to have a tiny AI that could control the house from WhatsApp.

## Advanced Patterns: Grok + Hermes for Complex Workflows

DevFeed: [Advanced Patterns: Grok + Hermes for Complex Workflows](<https://devfeed.tech/articles/advanced-patterns-grok-hermes-for-complex-workflows-38370.md>)

Original publisher: [Read original article](<https://meedamian.com/post/advanced-grok-hermes/>)

Author: hi@meedamian.com (Damian Mee)

Published: 2026-05-18T00:00:00Z

Content type: tutorial

Language: en

Sources: [Damian Mee | Blog | Portfolio | About](<https://devfeed.tech/sources/damian-mee-blog-portfolio-about.md>)

Topics: [Automation](<https://devfeed.tech/topics/automation.md>), [sessions](<https://devfeed.tech/topics/sessions.md>), [Tool](<https://devfeed.tech/topics/tool.md>), [Raspberry Pi](<https://devfeed.tech/topics/raspberry-pi.md>)

Tags: [advanced](<https://devfeed.tech/tags/advanced.md>), [authoring](<https://devfeed.tech/tags/authoring.md>), [context](<https://devfeed.tech/tags/context.md>), [delegation](<https://devfeed.tech/tags/delegation.md>), [long-running](<https://devfeed.tech/tags/long-running.md>), [memory](<https://devfeed.tech/tags/memory.md>), [multi-agent](<https://devfeed.tech/tags/multi-agent.md>), [pi](<https://devfeed.tech/tags/pi.md>), [productivity](<https://devfeed.tech/tags/productivity.md>), [skills](<https://devfeed.tech/tags/skills.md>), [workflows](<https://devfeed.tech/tags/workflows.md>)

### AI overview

This developer post presents advanced workflow patterns for using Grok inside Hermes Agent. It discusses planning and sub-agent delegation, generating reusable SKILL.md files, and combining context handling with Hermes' memory tool for long-running projects. The author says these patterns improved productivity on Raspberry Pi projects and personal automation.

### Source excerpt

Disclaimer: This post was generated by Grok 4.3 running inside Hermes Agent. Advanced Grok + Hermes Workflows Once you have the basics down, here are some powerful patterns for using Grok inside Hermes Agent. Multi-Agent Delegation Grok excels at planning. Use it to orchestrate sub-agents: hermes delegate --goal "Refactor the auth module" --model grok-4.3 Skill Authoring with Grok Grok is fantastic at writing reusable skills. Ask it to generate SKILL.

## Using Grok with Hermes Agent: Getting Started

DevFeed: [Using Grok with Hermes Agent: Getting Started](<https://devfeed.tech/articles/using-grok-with-hermes-agent-getting-started-38375.md>)

Original publisher: [Read original article](<https://meedamian.com/post/grok-in-hermes-basics/>)

Author: hi@meedamian.com (Damian Mee)

Published: 2026-05-15T00:00:00Z

Content type: tutorial

Language: en

Sources: [Damian Mee | Blog | Portfolio | About](<https://devfeed.tech/sources/damian-mee-blog-portfolio-about.md>)

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [AI Agent](<https://devfeed.tech/topics/ai-agent.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [coding](<https://devfeed.tech/topics/coding.md>), [debugging](<https://devfeed.tech/topics/debugging.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-agent](<https://devfeed.tech/tags/ai-agent.md>), [ai-assistant](<https://devfeed.tech/tags/ai-assistant.md>), [cli](<https://devfeed.tech/tags/cli.md>), [coding](<https://devfeed.tech/tags/coding.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [tool-use](<https://devfeed.tech/tags/tool-use.md>)

### AI overview

This tutorial introduces using Grok from xAI with Hermes Agent, a CLI-based AI assistant. It describes the pairing's stated capabilities, including reasoning, tool use, coding, debugging, and real-time knowledge, and begins with basic configuration.

### Source excerpt

Disclaimer: This post was generated by Grok 4.3 running inside Hermes Agent. Using Grok in Hermes Hermes Agent is a powerful CLI-based AI assistant, and pairing it with Grok (from xAI) unlocks some unique capabilities thanks to Grok's strong reasoning and tool-use performance. Why Grok? Excellent at following complex instructions Strong coding and debugging abilities Built-in real-time knowledge via tools Great balance of speed and intelligence Basic Setup To use Grok in Hermes:

## Signing git commits using Keybase

DevFeed: [Signing git commits using Keybase](<https://devfeed.tech/articles/signing-git-commits-using-keybase-38377.md>)

Original publisher: [Read original article](<https://meedamian.com/post/keybase-signed-github/>)

Author: hi@meedamian.com (Damian Mee)

Published: 2016-04-14T00:00:00Z

Content type: tutorial

Language: en

Sources: [Damian Mee | Blog | Portfolio | About](<https://devfeed.tech/sources/damian-mee-blog-portfolio-about.md>)

Topics: [Git](<https://devfeed.tech/topics/git.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [account](<https://devfeed.tech/topics/account.md>), [private key](<https://devfeed.tech/topics/private-key.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [public key](<https://devfeed.tech/topics/public-key.md>)

Tags: [command-line](<https://devfeed.tech/tags/command-line.md>), [git](<https://devfeed.tech/tags/git.md>), [github](<https://devfeed.tech/tags/github.md>), [private-key](<https://devfeed.tech/tags/private-key.md>), [public-key](<https://devfeed.tech/tags/public-key.md>), [signing](<https://devfeed.tech/tags/signing.md>)

### AI overview

A historical guide explains how to use Keybase keys to sign Git commits and have GitHub display a Verified badge. The post warns that some of its advice is terrible and is preserved for historical reasons.

### Source excerpt

⚠ WARNING: This post contains some terrible advice, and is preserved here only for historical reasons. Signing git commits has been a great idea since forever. A great unpopular idea. Luckily, that changes with the recent Github announcement. This is a quick guide on how to set it up with your keybase.io account. Keybase Jump to the git stuff, I already have Keybase. Create keybase.io account Keybase is still not publicly available, but you can ask me or anyone on Keybase for an invite.

## Rapid Guide on Two-Way Data Binding in Android

DevFeed: [Rapid Guide on Two-Way Data Binding in Android](<https://devfeed.tech/articles/rapid-guide-on-two-way-data-binding-in-android-38381.md>)

Original publisher: [Read original article](<https://meedamian.com/post/two-way-data-binding/>)

Author: hi@meedamian.com (Damian Mee)

Published: 2016-01-07T00:00:00Z

Content type: tutorial

Language: en

Sources: [Damian Mee | Blog | Portfolio | About](<https://devfeed.tech/sources/damian-mee-blog-portfolio-about.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [MVVM](<https://devfeed.tech/topics/mvvm.md>), [Code](<https://devfeed.tech/topics/code.md>), [XML](<https://devfeed.tech/topics/xml.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [code](<https://devfeed.tech/tags/code.md>), [guide](<https://devfeed.tech/tags/guide.md>), [java](<https://devfeed.tech/tags/java.md>), [mvvm](<https://devfeed.tech/tags/mvvm.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

A concise Android tutorial showing the minimum setup needed to make two-way data binding work in an already configured project, using a simple UI, an Activity, a model, and a ViewModel.

### Source excerpt

This post is not a comprehensive introduction to data binding in Android, it's a required minimum to get two-way data binding to work, that assumes your project to be configured for data binding already (if it's not, start here). Complete source code available here or here. Structure: role file Activity: MainActivity.java Model: not relevant here View: activity_main.xml ViewModel: MainState.java Activity This one just glues stuff together: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.

## Unlocalize Google Chrome Omnibar

DevFeed: [Unlocalize Google Chrome Omnibar](<https://devfeed.tech/articles/unlocalize-google-chrome-omnibar-38382.md>)

Original publisher: [Read original article](<https://meedamian.com/post/unlocalize-google-in-chrome/>)

Author: hi@meedamian.com (Damian Mee)

Published: 2016-01-05T00:00:00Z

Content type: tutorial

Language: en

Sources: [Damian Mee | Blog | Portfolio | About](<https://devfeed.tech/sources/damian-mee-blog-portfolio-about.md>)

Topics: [Google Chrome](<https://devfeed.tech/topics/google-chrome.md>), [Google](<https://devfeed.tech/topics/google.md>), [Virtual Private Network](<https://devfeed.tech/topics/vpn.md>)

Tags: [change](<https://devfeed.tech/tags/change.md>), [chrome](<https://devfeed.tech/tags/chrome.md>), [copy](<https://devfeed.tech/tags/copy.md>), [domain](<https://devfeed.tech/tags/domain.md>), [google](<https://devfeed.tech/tags/google.md>), [google-chrome](<https://devfeed.tech/tags/google-chrome.md>), [search](<https://devfeed.tech/tags/search.md>), [search-engine](<https://devfeed.tech/tags/search-engine.md>), [settings](<https://devfeed.tech/tags/settings.md>), [vpn](<https://devfeed.tech/tags/vpn.md>)

### AI overview

A tutorial explains how to change Chrome's Google search-engine settings to prevent Google from redirecting users who travel frequently or use a VPN to a local domain they do not want.

### Source excerpt

If you travel a lot or use a VPN, then at some point, Google might start to, wrongfully, think that you'd rather use some outdated local domain. Steps to fix it: Go to chrome://settings/searchEngines (copy-paste it into your address bar) In the Default search settings section find "Google" Rename Google to ex. Google (Annoying) in the 1st field Change google.com to ex. Google.annoying in the 2nd field Copy URL¹ from the 3rd field Scroll to the bottom of the Other search engines section Add a new search engine: Put Google into the 1st field Put google.

## Customizing Android Studio themes with Material Theme UI and ChroMATERIAL

DevFeed: [Customizing Android Studio themes with Material Theme UI and ChroMATERIAL](<https://devfeed.tech/articles/making-android-studio-pretty-38372.md>)

Original publisher: [Read original article](<https://meedamian.com/post/deuglifying-android-studio/>)

Author: hi@meedamian.com (Damian Mee)

Published: 2015-11-20T00:00:00Z

Content type: tutorial

Language: en

Sources: [Damian Mee | Blog | Portfolio | About](<https://devfeed.tech/sources/damian-mee-blog-portfolio-about.md>)

Topics: [Android Studio](<https://devfeed.tech/topics/android-studio.md>), [GUI](<https://devfeed.tech/topics/gui.md>), [syntax](<https://devfeed.tech/topics/syntax.md>)

Tags: [android-studio](<https://devfeed.tech/tags/android-studio.md>), [gui](<https://devfeed.tech/tags/gui.md>), [plugins](<https://devfeed.tech/tags/plugins.md>), [syntax](<https://devfeed.tech/tags/syntax.md>)

### AI overview

A tutorial for restoring and customizing Android Studio's GUI, syntax, and LogCat color themes. It explains how to install Material Theme UI and ChroMATERIAL, then apply and adjust a color scheme.

### Source excerpt

Today, during a glorious transition from 1.5 rc1 to 1.5 Android Studio decided to keep all of my settings completely intact, with the honorable exception of GUI and syntax themes and LogCat colors, which were just gone. Being me, I had not the slightest recollection on how the previous combo have gotten into my editor and I had to search for everything again. Not particularly enjoying the process of rediscovery, I decided to keep it stashed somewhere, both for the future me and maybe for some curious souls that happen to bump onto my blog.

## Flashing an OTA update onto your Nexus

DevFeed: [Flashing an OTA update onto your Nexus](<https://devfeed.tech/articles/flashing-an-ota-update-onto-your-nexus-38374.md>)

Original publisher: [Read original article](<https://meedamian.com/post/flashing-otas/>)

Author: hi@meedamian.com (Damian Mee)

Published: 2015-10-16T00:00:00Z

Content type: tutorial

Language: en

Sources: [Damian Mee | Blog | Portfolio | About](<https://devfeed.tech/sources/damian-mee-blog-portfolio-about.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [adb](<https://devfeed.tech/topics/adb.md>)

Tags: [adb](<https://devfeed.tech/tags/adb.md>), [android](<https://devfeed.tech/tags/android.md>), [flashing](<https://devfeed.tech/tags/flashing.md>), [ota](<https://devfeed.tech/tags/ota.md>), [update](<https://devfeed.tech/tags/update.md>)

### AI overview

A tutorial explains how to manually install an over-the-air update on a Nexus phone, including obtaining an OTA package and applying it through ADB. The supplied text is incomplete and omits some commands and steps.

### Source excerpt

Mandatory intro OTA stands for Over The Air. Those update files are usually delivered wirelessly directly to your device, but as it usually happens gradually, you might get your update couple of days, weeks or even months after the rollout starts. Luckily there are ways to accelerate that process. Among all the people who get OTAs first there usually is couple of people willing to manually extract them from their device, and share with others on websites like Android Police.

## Publishing with Gradle (Revisited)

DevFeed: [Publishing with Gradle (Revisited)](<https://devfeed.tech/articles/publishing-with-gradle-revisited-38379.md>)

Original publisher: [Read original article](<https://meedamian.com/post/publishing-with-gradle-revisited/>)

Author: hi@meedamian.com (Damian Mee)

Published: 2015-03-31T00:00:00Z

Content type: tutorial

Language: en

Sources: [Damian Mee | Blog | Portfolio | About](<https://devfeed.tech/sources/damian-mee-blog-portfolio-about.md>)

Topics: [Gradle](<https://devfeed.tech/topics/gradle.md>), [ci](<https://devfeed.tech/topics/ci.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [passwords](<https://devfeed.tech/topics/passwords.md>)

Tags: [apk](<https://devfeed.tech/tags/apk.md>), [ci](<https://devfeed.tech/tags/ci.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [env-file-security](<https://devfeed.tech/tags/env-file-security.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [passwords](<https://devfeed.tech/tags/passwords.md>), [properties](<https://devfeed.tech/tags/properties.md>), [repo](<https://devfeed.tech/tags/repo.md>)

### AI overview

A revised tutorial on publishing Android APKs with Gradle. It explains how to keep sensitive signing variables outside the repository, make them available locally and on CI systems, load Gradle properties safely, and handle generated APK and mapping files.

### Source excerpt

tl;wr: use this. Paragraph that everybody will ignore Since my last post a lot has changed, broken down and new things are possible. Let's see what can be done now. Configuration Handling missing variables Previously gradle.properties contained sensitive info (passwords, duh), so it had to be .gitignore'd, that caused Could not find property errors just after repo clone and was unusable on CI systems. It can be fixed by adding:

## Faster git deployment

DevFeed: [Faster git deployment](<https://devfeed.tech/articles/faster-git-deployment-38373.md>)

Original publisher: [Read original article](<https://meedamian.com/post/faster-git-deployment/>)

Author: hi@meedamian.com (Damian Mee)

Published: 2014-06-23T00:00:00Z

Content type: tutorial

Language: en

Sources: [Damian Mee | Blog | Portfolio | About](<https://devfeed.tech/sources/damian-mee-blog-portfolio-about.md>)

Topics: [Git](<https://devfeed.tech/topics/git.md>), [Heroku](<https://devfeed.tech/topics/heroku.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [hosting](<https://devfeed.tech/topics/hosting.md>)

Tags: [deploy](<https://devfeed.tech/tags/deploy.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [git](<https://devfeed.tech/tags/git.md>), [heroku](<https://devfeed.tech/tags/heroku.md>), [hosting](<https://devfeed.tech/tags/hosting.md>), [how-to](<https://devfeed.tech/tags/how-to.md>)

### AI overview

A Git deployment technique configures a Heroku remote so one command pushes code to two repositories. The article notes that automatic deployment on every Git push may be risky for projects with many users and describes the approach as applicable to other Git repositories and cloud platforms that support Git deployment.

### Source excerpt

This trick let's you push to two repositories with one command. It is great for projects that need really rapid development and aren't yet populated by many users. Before using make sure that deploying with every git push will not result with catastrophic consequences. I assume Github for version control and Heroku for hosting, but it works with any remote Git repository and Cloud Platform offering deployment by git. First, repo needs to be created:

## Publishing with Gradle

DevFeed: [Publishing with Gradle](<https://devfeed.tech/articles/publishing-with-gradle-38380.md>)

Original publisher: [Read original article](<https://meedamian.com/post/publishing-with-gradle/>)

Author: hi@meedamian.com (Damian Mee)

Published: 2014-05-17T00:00:00Z

Content type: tutorial

Language: en

Sources: [Damian Mee | Blog | Portfolio | About](<https://devfeed.tech/sources/damian-mee-blog-portfolio-about.md>)

Topics: [Gradle](<https://devfeed.tech/topics/gradle.md>), [Android](<https://devfeed.tech/topics/android.md>), [Android Studio](<https://devfeed.tech/topics/android-studio.md>), [builds](<https://devfeed.tech/topics/builds.md>), [Publishing](<https://devfeed.tech/topics/publishing.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-studio](<https://devfeed.tech/tags/android-studio.md>), [build](<https://devfeed.tech/tags/build.md>), [build-system](<https://devfeed.tech/tags/build-system.md>), [directory](<https://devfeed.tech/tags/directory.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [ide](<https://devfeed.tech/tags/ide.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [publishing](<https://devfeed.tech/tags/publishing.md>), [repository](<https://devfeed.tech/tags/repository.md>), [script](<https://devfeed.tech/tags/script.md>)

### AI overview

A tutorial on publishing Android production builds with Gradle. It presents three credential-handling and publishing workflows, including direct file entry, console input, and a repository-friendly project configuration, while warning that committed credentials make a repository unsafe to open-source.

### Source excerpt

Redundant intro As I started my Android journey with Eclipse I was used to wizards like this: So, you can imagine my surprise when this happened (if you can't access this link click here). It was unexpected, but pushed me to learn more about Gradle build system. At first gradle docs seemed really overwhelming, because they were covering so much more than only publishing production builds (more about that in my future posts).

## Adapting a Blogging Project for Terminal-Based Publishing and Heroku Deployment

DevFeed: [Adapting a Blogging Project for Terminal-Based Publishing and Heroku Deployment](<https://devfeed.tech/articles/beginning-38371.md>)

Original publisher: [Read original article](<https://meedamian.com/post/beginning/>)

Author: hi@meedamian.com (Damian Mee)

Published: 2014-05-13T00:00:00Z

Content type: tutorial

Language: en

Sources: [Damian Mee | Blog | Portfolio | About](<https://devfeed.tech/sources/damian-mee-blog-portfolio-about.md>)

Topics: [Heroku](<https://devfeed.tech/topics/heroku.md>), [Express](<https://devfeed.tech/topics/express.md>), [Git](<https://devfeed.tech/topics/git.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Markdown](<https://devfeed.tech/topics/markdown.md>), [Highlight.js](<https://devfeed.tech/topics/highlightjs.md>), [npm](<https://devfeed.tech/topics/npm.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [Bootstrap](<https://devfeed.tech/topics/bootstrap.md>), [jQuery](<https://devfeed.tech/topics/jquery.md>)

Tags: [bootstrap](<https://devfeed.tech/tags/bootstrap.md>), [express](<https://devfeed.tech/tags/express.md>), [git](<https://devfeed.tech/tags/git.md>), [heroku](<https://devfeed.tech/tags/heroku.md>), [highlighting](<https://devfeed.tech/tags/highlighting.md>), [markdown](<https://devfeed.tech/tags/markdown.md>), [npm](<https://devfeed.tech/tags/npm.md>), [terminal](<https://devfeed.tech/tags/terminal.md>)

### AI overview

The author describes adapting an existing blogging project for writing in Sublime Text and publishing from the terminal. The work included dependency changes, Bootstrap and jQuery integration, Express compatibility fixes, replacing the Markdown processing setup with marked and highlight.js, and deploying the result on Heroku.

### Source excerpt

Several days ago I was casually browsing awesomeness of Github when I saw this project by koush, and instantly understood that's the blogging flow I could use - write in sublime and publish/deploy from terminal. I had to do some cleanup there, update & fix some dependencies and rewrite parts of it to a better language. Later, I've created a new Heroku instance, moved my domain to a heroku Add-on called pointDNS, did git push heroku, and it worked great :).