Today I found a way to test model syntax, cause the clankers always get the exact model name that copilot wants wrong.
Posts tagged: cli
All posts with the tag "cli"
Ses_3444b09b1ffexter3elfg5qqtg
Session ID: ses_3444b09b1ffeXTEr3ELFg5qqtg Created: 3/4/2026, 7:55:24 PM Updated: 3/4/2026, 8:52:32 PM
I want to spec out a cli for tmux session switching in go.
keymap
...
I Built A Tmux Session Switcher
I’ve been thinking about this for awhile now. For years now, fuzzy pickers and last session have been my go to. They have served me well. I can typically only keep so much in my head anyways. I’m often doing a hub and spoke pattern between main project, notes, and infra repo, maybe two projects. Don’t get me wrong, I regularly run with a dozen or more sessions running at a time, but only two to three are in my immediate context at any point anyways.
harpoon for tmux
press a hotkey followed by one more keystroke, currently any left hand letter SIMPLE, FAST, thats of utmost importance, what I want are sessions that I can can be assigned in order of importance from middle row, top row, bottom row.
...
In the age of agents sometimes work gets done on so many different worktrees and branches its hard to tell if there is already a PR or any of them or not, the great gh cli has us covered.
Vaulted Secrets Without Git Churn
Ansible Vault keeps secrets out of sight, but the ciphertext changes on every encrypt. That turns Git diffs into noise and makes it hard to tell if anything actually changed. Decrypting, editing, and re-encrypting often leaves uncertainty about whether any plaintext changed. This is amplified when secret repos are tightly coupled to dependent repositories. A typical cycle includes decrypting, adding a key, updating a value, applying changes, and returning later with little clarity about what changed while secrets were in plaintext.
Today a new workflow was created with @gpt-5.2-codex to keep diffs clean and avoid re-encrypting when the plaintext is identical.
Re-encrypting a file with the same content produces different ciphertext. A simple decrypt/encrypt cycle can look...
...
Yeah there’s some basics, you know things you might expect like using standard error and standard out correctly. One thing I’ll say on that because I think this is commonly misunderstood, standard error is not for errors, it’s for any information that isn’t part of the normal output. So you know often times that’s warnings and errors, but it might just be progress information. You know anytime that you just need to have something go to the user that’s what it’s there for." (6:15 - 6:42)
I’ve definitely done this sin in my own tooling before, and it does make things harder to use. I think I still take err/out at face value. I really like the translation Jeff gave here, one is for normal output, i.e. what the user asked for and the other is extra information. So if I wanted to list something and pipe it into something else, stdout only captures the list, thats it. if you have a bunch of information about config warnings, showing environment, are you sure questions, none of that is captured.
When using two GitHub accounts the gh cli gives very easy gh auth switch workflow from the cli.
gh auth switch –help Switch the active account for a GitHub host.
This command changes the authentication configuration that will be used when running commands targeting the specified GitHub host.
If the specified host has two accounts, the active account will be switched automatically. If there are more than two accounts, disambiguation will be required either through the --user flag or an interactive prompt.
setting COLUMNS env var to a number greater than 0 will make the terminal resize to that number of columns.
COLUMNS=80 uvx --from rich-cli rich myscript.py
I discovered this when I was trying to make a low effort readme generated from the code, but did not depend on the size of terminal it was ran on.
The tea command for gitea (used by forgejo) has a flag for login. With gitea you can have multiple accounts logged in. When you try to run a command such as repo create it will prompt you which login to use, but I learned that you can bake it in to all of them with --login <login-name>
Atuin desktop sounds dope AF, tried to install it off the AUR and it was broken for me. Seems early and the dev team is all in on mac. They have an official .deb and .rpm. I’ll have to try again later, maybe the binary will work.
The idea of building out runbooks from my Atuin data sounds dope AF. It sounds like a mix of markdown and executable cells like a jupyter notebook, but not. Really pitching hard to those of us in the system administration, dev ops, SRE space. Having something that you walk through when a system goes down and you are feeling panicked in DR mode sounds relieving.
Today I learned how to use tar over ssh to save hours in file transfers. I keep all of my projects in ~/git (very creative I know, I’ve done it for years and haven’t changed). I just swapped out my main desktop from bazzite to hyprland, and wanted to get all of my projects back. Before killing my bazzite install I moved everything over (16GB of many small files), it took over 14 hours, maybe longer. I had started in the morning and just let it churn.
This was not going to happen for re-seeding all of my projects on my new system, I knew there had to be a better way, I looked at rsync, but for seeding I ran into this tar over ssh technique and it only took me 6m51s to pull all of my projects off of my remote server.
big fan of eza and dust, I like these aliases to have some common commands at my fingertips. I often use the tree command and yes it sometimes goes too deep to actually be useful.
I am a linux user through and through. Desktop, server, vms, containers, everything except my phone is linux. With this I spend a lot of time in the terminal, and have been a long time user of !! to rerun the last command, but with the ability to tack something on at the beginning or end.
TIL about fc, which opens the last command in your shell history in your $EDITOR or pass in your editor -e nvim.
!! pronounces bang bang and will run the last command in your history.
...
You can unset multiple environment variables at once. I did not know this was a thing, its something that ended up happening organically on a call and asking someone to run unset. They had never done it before and did not know how it works, but did exactly as I said instead of what I meant. I like this handy shortcut doing it in one line rather than each one individually, I will be using this in the future. You might need this for something like running aws cli commands with localstack.
m9a devlog 1
It’s sad to see textualize.io close the doors, but textual is still alive and maintained as a n open source project. I tried to use it very early, and struggled, this was before docs and tutorials really existed, before a lot of the widgets and components existed. Then as we all do I got busy and moved on to other things in life and did not have the capacity to build TUIs.
I like tuis, I like staying in the terminal. I use lf daily to move files around when I want something more than mv and cp. I use k9s hourly to...
...
backup distrobox image
Today I’m upgrading my distrobox, but don’t want to end up in a situation where I can’t get anything done becauase I work out of my distrobox.
keeping this in my back pocket for now. I just moved a few TB’s of data in the homelab and I am expecting a lot of duplication to show up.
Using pbpaste for command substitution keeps sensitive or long URLs out of your shell history. Instead of typing git clone https://github.com/user/repo-with-long-name.git, copy the URL to clipboard and run git clone "$(pbpaste)". This prevents the URL from appearing in ~/.bash_history or ~/.zsh_history.
To get pbpaste working on both Xorg and Wayland, add this to your shell config:
if [[ $(command -v wl-copy) ]]; then alias pbcopy='wl-copy' pbpaste() { wl-paste; } elif [[ $(command -v xclip) ]]; then alias pbcopy='xclip -selection clipboard' pbpaste() { xclip -selection clipboard -o; } fi
The function approach (instead of alias) enables command substitution, while the quotes around $(pbpaste) handle spaces and special characters safely.
Now you can use it.
...
dust is one of my favorite rust rewrite tools. Its so useful for narrowing down file system bloat and cleaning up some disk space on your nearly full disks. It runs right in your terminal and gives you a nice bar graph on the top directories in use.
Intereresting someone built a blog generator in bash. it comes with normal markdown to html, static content, robots.txt, sitemap, rss, and tags. It uses pandoc to take markdown to html and mustache for page templates.