Abdelhamid Ait-Ayoub
Back to blog
Setup

My portable dev environment

How I use Omaterm, omadots, and Archup to get the same terminal setup on any machine.

Aug 19, 2026 | 3 min read

In my previous post I described the tools I use on my main machine. That machine runs Omarchy, an opinionated Arch-based Linux distribution by DHH that ships with Hyprland, Neovim, tmux, Starship, and a curated set of terminal tools out of the box.

But I do not always work on that machine. At work I get a corporate Windows laptop. Sometimes I need a cloud VM. Sometimes I SSH into a remote server. In all these cases I want the same terminal experience without spending hours setting it up.

The Omarchy ecosystem has two projects that help with this, and I built a third one to fill the gap.

Omaterm

Omaterm is described as "a headless Omarchy." It is a Docker-based setup by DHH that gives you the full Omarchy terminal environment inside a container: bash, neovim (LazyVim), tmux, starship, fzf, eza, zoxide, lazygit, GitHub CLI, and AI coding agents like opencode, claude-code, codex, and gemini.

All these tools share their configs through omadots, a set of shell dotfiles (bash, tmux, neovim/LazyVim) maintained by DHH and the community. omadots is what makes the terminal feel the same whether you are on Omarchy, inside Omaterm, or on any other system that installs it.

You install Omaterm with one curl command, run omaterm, and you are inside a familiar shell. You can create multiple named Omaterms, snapshot them as templates, and stamp out new ones instantly. It even manages CPU and memory limits across containers so they do not starve the host.

Omaterm helped me a lot. It is the fastest way to get a working Omarchy shell on any machine that has Docker. But it runs inside a container. Sometimes I need tools installed directly on the system with full access to systemd, Docker as a host service, Tailscale networking, and no extra docker run layer.

Archup

I built Archup to get the same stack installed directly on a bare Arch Linux system. No containers. It uses the same Omarchy package repo, installs the same omadots configs, and sets up the same AI agents. The difference is everything lives on the host: Docker runs as a systemd service, Tailscale connects the machine to my network, and I open a terminal without going through Docker first.

On top of the shared base I layer my own customizations (starship theme, lazygit tweaks, neovim colorscheme) and install dev tools through mise.

git clone https://github.com/abdelhamidaitayoub/archup.git
cd archup
./install

At the end it walks through an interactive setup for git identity, SSH keys, GitHub auth, and Tailscale, the things that change per machine.

What I care about

Same goal as before: less friction, more building. Clone, run, work.

The repo is at Archup on GitHub.