---
date: "2024-03-11T17:46:29.000Z"
title: "2024-03-11"
tags: ["yabai","window_manager","nix","devdocs","asdf","python","poetry"]
draft: false
---

I played around with [AgentGPT](https://github.com/reworkd/AgentGPT) using Reworkd's [cloud hosted](https://agentgpt.reworkd.ai/) instance.
I tried a few different goals.
The first was travel related.
I was pleasantly surprised (unnerved) to see the agent return links for flights to my proposed location from my actual current origin (I guess they used my IP to determine this).
One of my first impressions was the likeness to [Perplexity](https://www.perplexity.ai/), particularly in how the links were displayed.
It turns out, Reworkd open sourced [code](https://github.com/reworkd/perplexity-style-streaming) for this exact thing.
AgentGPT also uses inline citations like Perplexity does, though those aren't shown in the `perplexity-style-streaming` demo video.

---

I read up a bit on managing windows with `yabai`'s tiled layout

```sh
yabai -m config layout bsp
```

I read through these two helpful articles on the topic

- https://evantravers.com/articles/2024/02/15/yabai-tiling-window-management-for-osx/
- https://bryce-s.com/yabai/

It's not for me.
My approach is a bit more flexible but makes more sense in my brain than this does.
I don't really mind having windows open that are fully covered.
Generally, I have two windows in a 50-50 split on my large monitor and a single window maximized on my laptop screen.
For me, tiled layout seems more complicated than it is worth.

---

I learned about https://devdocs.io.
It's quite interesting and useful, but the search functionality doesn't quite work like a search engineer in terms of surfacing the relevant issues for your problem.
It seems to work best when you enter the specific library, class, or API you are working with.
It would be interesting to see if this could be indexed for RAG then used as a resource by a model.

---

My love-hate relationship with Nix continues.
When it works, it's amazing but I'm still scaling the learning curve of the language and its rough edges.

---

Python dependency management system is the wild west.
I manage Python versions with `asdf` on one machine.
When a project uses `poetry` and relies on `poetry`'s virtualenv to install dependencies, selecting the right version (on the system) of `poetry` and getting around the `asdf` becomes a pain.
I like `asdf` because I don't want to manage a version tool per language, yet many of these languages and tools more or less force you to do just that or struggle to juggle multiple versions of things while you try and bootstrap your way to a working environment.