for assorted things

add detail

+22
README.md
··· 27 ./check-files-for-bad-links *.md 28 ``` 29 30 ### `kill-processes` 31 32 AI-powered TUI for killing processes. ··· 37 ./kill-processes 38 ``` 39 40 ### `update-lights` 41 42 Make some change to my phillips hue network of lights via agent + MCP server. ··· 47 ./update-lights -m "turn on sahara in the living room and nightlight in the kitchen" 48 ``` 49 50 ### `update-readme` 51 52 Update the README.md file with a list of all the scripts in the current directory. ··· 57 ./update-readme 58 ``` 59
··· 27 ./check-files-for-bad-links *.md 28 ``` 29 30 + Details: 31 + - uses [`httpx`](https://www.python-httpx.org/) to check links 32 + - uses [`anyio`](https://anyio.readthedocs.io/en/stable/) to run the checks concurrently 33 + - pass include globs to scan (e.g. `*.md`) 34 + - pass exclude globs to skip (e.g. `*.md`) 35 + - pass ignore-url prefixes to ignore (e.g. `http://localhost` or `https://localhost`) 36 + - pass concurrency to run the checks concurrently (default is 50) 37 + 38 + 39 ### `kill-processes` 40 41 AI-powered TUI for killing processes. ··· 46 ./kill-processes 47 ``` 48 49 + Details: 50 + - uses [`textual`](https://textual.textualize.io/) for the TUI 51 + - uses [`marvin`](https://github.com/prefecthq/marvin) (built on [`pydantic-ai`](https://github.com/pydantic/pydantic-ai)) to annotate processes 52 + 53 + 54 ### `update-lights` 55 56 Make some change to my phillips hue network of lights via agent + MCP server. ··· 61 ./update-lights -m "turn on sahara in the living room and nightlight in the kitchen" 62 ``` 63 64 + Details: 65 + - uses a [`marvin`](https://github.com/prefecthq/marvin) (built on [`pydantic-ai`](https://github.com/pydantic/pydantic-ai)) agent 66 + - the agent spins up a [`fastmcp`](https://github.com/jlowin/fastmcp) MCP server that talks to my [`phue`](https://github.com/studioimaginaire/phue) bridge 67 + - set `HUE_BRIDGE_IP` and `HUE_BRIDGE_USERNAME` in `.env` or otherwise in environment 68 + - uses `OPENAI_API_KEY` by default, but you can set `AI_MODEL` in `.env` or otherwise in environment to use a different model 69 + 70 + 71 ### `update-readme` 72 73 Update the README.md file with a list of all the scripts in the current directory. ··· 78 ./update-readme 79 ``` 80 81 +
+4
kill-processes
··· 11 ```bash 12 ./kill-processes 13 ``` 14 """ 15 16 import os
··· 11 ```bash 12 ./kill-processes 13 ``` 14 + 15 + Details: 16 + - uses [`textual`](https://textual.textualize.io/) for the TUI 17 + - uses [`marvin`](https://github.com/prefecthq/marvin) (built on [`pydantic-ai`](https://github.com/pydantic/pydantic-ai)) to annotate processes 18 """ 19 20 import os
+6
update-lights
··· 11 ```bash 12 ./update-lights -m "turn on sahara in the living room and nightlight in the kitchen" 13 ``` 14 """ 15 16 import marvin
··· 11 ```bash 12 ./update-lights -m "turn on sahara in the living room and nightlight in the kitchen" 13 ``` 14 + 15 + Details: 16 + - uses a [`marvin`](https://github.com/prefecthq/marvin) (built on [`pydantic-ai`](https://github.com/pydantic/pydantic-ai)) agent 17 + - the agent spins up a [`fastmcp`](https://github.com/jlowin/fastmcp) MCP server that talks to my [`phue`](https://github.com/studioimaginaire/phue) bridge 18 + - set `HUE_BRIDGE_IP` and `HUE_BRIDGE_USERNAME` in `.env` or otherwise in environment 19 + - uses `OPENAI_API_KEY` by default, but you can set `AI_MODEL` in `.env` or otherwise in environment to use a different model 20 """ 21 22 import marvin
+1 -3
update-readme
··· 62 scripts = get_scripts() 63 script_list = "\n\n## scripts\n\n" 64 65 - # Add directory 66 for script, _ in scripts: 67 script_list += f"- [`{script.name}`](#{script.name})\n" 68 script_list += "\n---\n\n" 69 70 - # Add detailed entries 71 for script, doc in scripts: 72 - script_list += f"### `{script.name}`\n\n{doc or 'no description'}\n\n" 73 74 new_content = base_content + script_list 75
··· 62 scripts = get_scripts() 63 script_list = "\n\n## scripts\n\n" 64 65 for script, _ in scripts: 66 script_list += f"- [`{script.name}`](#{script.name})\n" 67 script_list += "\n---\n\n" 68 69 for script, doc in scripts: 70 + script_list += f"### `{script.name}`\n\n{doc or 'no description'}\n\n\n" 71 72 new_content = base_content + script_list 73