Repository navigation
Conversation
sidkmenon
added this pull request to stack #1055
October 9, 2026 00:42
diffr config init
sidkmenon
force-pushed
the
sm/diffr-config-init
branch
2 times, most recently
from
October 9, 2026 02:40
cb3c935 to
d6117b5
Compare
sidkmenon
force-pushed
the
sm/diffr-help
branch
from
October 9, 2026 02:40
203d82d to
49b83eb
Compare
sidkmenon
removed this pull request from stack #1055
October 9, 2026 02:40
sidkmenon
added this pull request to stack #1060
October 9, 2026 02:40
sidkmenon
removed this pull request from stack #1060
October 9, 2026 02:40
In a terminal, `config init` asks which agents get the diffr plugin and which provider writes summaries, and asks for a key only when neither the config nor the environment has one. Without a terminal it errors and points to `--json`: `config init --json` prints the questions, a schema for the answers and the key facts, and `config init --json ANSWERS` (a file, or - for stdin) applies them. The key never goes through `--json`. Key instructions are a TODO. Claude Code is the only agent: its plugin is installed with `claude plugin install diffr@devfast`, after adding or updating the devfast marketplace. Plugins install before the config is saved, so a failure stops the run with the config unchanged. Installed agents are recorded in $XDG_STATE_HOME/diffr/install.json, outside the synced config directory, so a rerun offers them as defaults and removes the plugin from an agent that is no longer chosen. Prompts use cliclack. Claude-Session: https://claude.ai/code/session_01LYrgBPQFAiQVjNV6D7UkQv Agent-Session: 01a11aca-5007-7b80-ad35-c0a0f746a05d Agent-Session: ec5d2c35-3045-44f3-9c41-ba4378797c8e Agent-Session: 01a11cf1-8ad4-7910-b120-b0d622692a95 Agent-Session: 01a11ded-d896-7251-bf8f-c71bf07fd283 Agent-Session: 01a11e03-81df-7d63-bfa5-953f535444d2 Agent-Session: 01a11e0a-d042-71d2-9bc9-ac7b652487d1 Agent-Session: b5985b3c-e5d2-4bb4-b6ac-7fec168d8328 Agent-Session: 7ba69deb-2039-47e6-900f-0f30a79e167a Agent-Session: 01a11ecf-aa86-7a81-a5e6-c5dfe72d48eb
sidkmenon
force-pushed
the
sm/diffr-help
branch
from
October 9, 2026 05:02
49b83eb to
1d25109
Compare
sidkmenon
force-pushed
the
sm/diffr-config-init
branch
from
October 9, 2026 05:02
d6117b5 to
d09e1b1
Compare
Contributor
Author
sidkmenon
added a commit
that referenced
this pull request
Oct 9, 2026
One command installs diffr and its Claude Code plugin: ```sh curl -fsSL https://install.dev.fast/diffr | sh ``` Commit by commit: - **`DIFFR_CONFIG_DIR`**: a host such as Whiteboard can keep its own diffr config file. Without the variable, diffr reads the same file as before. - **`--help` guides**: `diffr --help` ends with a guide for agents (`docs/agents.md`), and `diffr config --help` with the plugins guide (`docs/plugin.md`). `-h` stays short. An agent runs `diffr --help` in its shell, so what it reads always matches the installed diffr. - **`diffr config init`**: in a terminal, asks which agents get the diffr plugin and which provider writes summaries, and asks for a key only when neither the config nor the environment has one. Without a terminal, `config init --json` prints the questions and a schema, and `config init --json ANSWERS` applies them; the key never goes through `--json`. Claude Code is the only agent: `claude plugin install diffr@devfast` after adding or updating the devfast marketplace, the same marketplace Whiteboard's plugin uses. Installed agents are recorded in `$XDG_STATE_HOME/diffr/install.json`, outside the synced config directory. - **`install.sh`**: finds the newest `diffr/X.Y.Z` release (or `DIFFR_VERSION`), checks the archive against the release's SHA256SUMS, installs diffr and diffr-tui in `DIFFR_INSTALL_DIR` (`~/.local/bin` by default), then runs `diffr config init` on a first install. - **Install module**: what `config init` installs moves to `install.rs`, so `upgrade` and `uninstall` use it without the prompts. No behavior change. - **`diffr upgrade` and `diffr uninstall`**: work the way diffr was installed, read from where the binary is (Homebrew, Cargo, inside `node_modules`: refuse, otherwise install.sh). After an upgrade, each recorded agent updates its plugin. `uninstall` keeps `~/.config/diffr`, which Whiteboard shares. - **Docs**: the plugins guide for agents, the man page's commands, files and environment, and a README that leads with the install script. - **Summaries**: `config init` asks yes or no for pseudocode summaries, then the provider, then its key. - **PATH and failures**: install.sh offers to put diffr on PATH and points install failures at the issue tracker. - **Steps**: setup shows each step as it runs. ## Before the install route goes live - Release `diffr/0.1.18` after this and #1019 merge. install.sh installs the newest `diffr/*` release; 0.1.17 has no `config init` or `upgrade`, and the plugin needs 0.1.18. - Then merge Fix-Fast/dev#1119, which points `install.dev.fast/diffr` at `diffr/install.sh` on main. ## Testing - `cargo fmt --check` and `cargo test`, including the CLI tests for `DIFFR_CONFIG_DIR`, the `--help` guides, `config init --json`, `upgrade` and `uninstall`. Replaces #1039, #1040, #1054, #1056, #1057 and #1063. Stack: #1065 → #1066 → #1019 → #1023 → #1024 → #1025 → #1026 https://claude.ai/code/session_01HNbERuYJjvvAjBN19zEDbo
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
In a terminal,
config initasks which agents get the diffr plugin andwhich provider writes summaries, and asks for a key only when neither
the config nor the environment has one. Without a terminal it errors and
points to
--json:config init --jsonprints the questions, a schemafor the answers and the key facts, and
config init --json ANSWERS(a file, or - for stdin) applies them. The key never goes through
--json. Key instructions are a TODO.Claude Code is the only agent: its plugin is installed with
claude plugin install diffr@devfast, after adding or updating thedevfast marketplace. Plugins install before the config is saved, so a
failure stops the run with the config unchanged. Installed agents are
recorded in $XDG_STATE_HOME/diffr/install.json, outside the synced
config directory, so a rerun offers them as defaults and removes the
plugin from an agent that is no longer chosen.
Prompts use cliclack.
Agent-Session: 01a11aca-5007-7b80-ad35-c0a0f746a05d
Agent-Session: ec5d2c35-3045-44f3-9c41-ba4378797c8e
Agent-Session: 01a11cf1-8ad4-7910-b120-b0d622692a95
Agent-Session: 01a11ded-d896-7251-bf8f-c71bf07fd283
Agent-Session: 01a11e03-81df-7d63-bfa5-953f535444d2
Agent-Session: 01a11e0a-d042-71d2-9bc9-ac7b652487d1
Agent-Session: b5985b3c-e5d2-4bb4-b6ac-7fec168d8328
https://claude.ai/code/session_01LYrgBPQFAiQVjNV6D7UkQv