Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "lib-herdr"]
path = lib-herdr
url = https://github.com/herdrdev/herdr.git
23 changes: 23 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ machines.
- [AI agent skills](#ai-agent-skills)
- [Neovim Configuration](#neovim-configuration)
- [Terminal Environment: tmux, zsh, bun](#terminal-environment-tmux-zsh-bun)
- [Herdr configuration](#herdr-configuration)
- [Codex config](#codex-config)
- [WSL Clipboard Integration](#wsl-clipboard-integration)
- [Requirements](#requirements)
Expand Down Expand Up @@ -106,6 +107,28 @@ See the [Codex skills documentation](https://developers.openai.com/codex/concept
- Bun JavaScript/TypeScript runtime integration
- `tree-sitter-cli` support for Neovim parser installation on the `main` branch

### Herdr configuration

[`herdr/config.toml`](herdr/config.toml) is the managed configuration source.
`symlinks.sh` links only this file to `~/.config/herdr/config.toml`; Herdr's
sessions and logs remain runtime-owned and are never linked or versioned.
Like the existing dotfiles links, sync replaces the runtime config with this
managed source. Backup/preservation or force-mode policies are deferred.

The checked-in file is the complete annotated baseline generated by Herdr
0.8.0. Its options are commented except for upstream's explicit
`pane_history = false` default, so it preserves built-in behavior until an
option is deliberately changed. Refresh it only when deliberately adopting a
new Herdr baseline:

```bash
herdr --default-config
```

The upstream source is available as the pinned `lib-herdr` submodule for local
documentation and implementation inspection. Initialize it after cloning
dotfiles with `git submodule update --init --recursive`.

### Codex config

[`codex/config.ts`](codex/config.ts) maintains portable defaults in
Expand Down
4 changes: 2 additions & 2 deletions codex/config.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -119,9 +119,9 @@ describe("codex config", () => {
await writeFile(
runtimePath,
'[projects."/tmp/project"]\ntrust_level = "trusted"\n\n' +
"[mcp_servers.private]\ncommand = \"private-command\"\n\n" +
'[mcp_servers.private]\ncommand = "private-command"\n\n' +
"[tui]\nvim_mode_default = false\n\n" +
"[tui.model_availability_nux]\n\"gpt-5.6-sol\" = 4\n",
'[tui.model_availability_nux]\n"gpt-5.6-sol" = 4\n',
)

await applyConfig({ runtimePath, mcpSourcePath, quiet: true })
Expand Down
17 changes: 17 additions & 0 deletions herdr/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Herdr configuration

`config.toml` is the managed Herdr configuration. The dotfiles link script
places it at `~/.config/herdr/config.toml`; Herdr session state and logs remain
outside this directory.

## Apply a configuration change

Validate the managed configuration, then reload the running Herdr server:

```bash
HERDR_CONFIG_PATH="$DOTFILES/herdr/config.toml" herdr config check
herdr server reload-config
```

The configuration key `keys.detach` uses `prefix+d`, matching tmux. This
reserves `prefix+q` for the future pane picker.
Loading