Skip to content

docs: add CodeWhale to supported agents (native AGENTS.md reader, zero setup) - #124

Merged
DietrichGebert merged 1 commit into
DietrichGebert:mainfrom
ousamabenyounes:feat/codewhale-support
Jun 18, 2026
Merged

DietrichGebert merged 1 commit into
DietrichGebert:mainfrom
ousamabenyounes:feat/codewhale-support

Conversation

@ousamabenyounes

@ousamabenyounes ousamabenyounes commented Jun 16, 2026 •

Copy link
Copy Markdown
Contributor

Adds CodeWhale to the supported-agents list. CodeWhale (the rebranded DeepSeek-TUI, 38k★, Rust) reads AGENTS.md from the project root natively — ponytail works with zero adapter file.

What changes

  • README: agent badge 13 → 14, a ### CodeWhale install section, and CodeWhale added to the instruction-only adapter list.
  • docs/agent-portability.md: one table row for CodeWhale.

Docs-only. No code.

Why it's accurate

CodeWhale's own docs/CONFIGURATION.md: "AGENTS.md — cross-agent project instructions … the canonical file … CLAUDE.md and .claude/instructions.md are read as compatibility fallbacks." Loader: crates/tui/src/project_context.rs::load_project_context reads AGENTS.md from the workspace root and as_system_block() wraps it as <project_instructions> for the system prompt.

I dropped an earlier "~/.codewhale/AGENTS.md for global use" line: the installed binary (v0.8.61) still resolves the global path to ~/.deepseek/AGENTS.md (rename incomplete), so that claim was wrong. Only the verified project-root path is documented.

Test verification (RED → GREEN)

Installed CodeWhale 0.8.61 (npm i -g codewhale) and added a test to CodeWhale's own loader that drops ponytail's real AGENTS.md into a workspace root and asserts CodeWhale ingests it into the <project_instructions> block.

The test (in crates/tui/src/project_context.rs):

#[test]
fn test_load_real_ponytail_overlay() {
    let src = std::env::var("PONYTAIL_AGENTS_MD")
        .expect("set PONYTAIL_AGENTS_MD to the ponytail AGENTS.md path");
    let overlay = fs::read_to_string(&src).expect("read ponytail AGENTS.md");

    let tmp = tempdir().expect("tempdir");
    fs::write(tmp.path().join("AGENTS.md"), &overlay).expect("write");

    let ctx = load_project_context(tmp.path());

    assert!(ctx.has_instructions(), "overlay not loaded");
    let block = ctx.as_system_block().expect("system block");
    assert!(block.starts_with("<project_instructions"), "not wrapped: {block:.80}");
    assert!(block.contains("lazy senior dev"), "ponytail signature missing");
}

GREEN — overlay written as AGENTS.md, CodeWhale discovers it natively:

$ PONYTAIL_AGENTS_MD=.../AGENTS.md cargo test -p deepseek-tui --bins test_load_real_ponytail_overlay
     Running unittests src/main.rs (target/debug/deps/deepseek_tui-4fcdc7140bad2d94)
test project_context::tests::test_load_real_ponytail_overlay ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 3221 filtered out; finished in 0.00s

RED — same test, overlay written as NOPE.md (a filename CodeWhale does not read) → native discovery misses it:

test project_context::tests::test_load_real_ponytail_overlay ... FAILED
---- project_context::tests::test_load_real_ponytail_overlay stdout ----
thread 'project_context::tests::test_load_real_ponytail_overlay' panicked at crates/tui/src/project_context.rs:734:9:
overlay not loaded
test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 3221 filtered out; finished in 0.00s

RED proves the green isn't a tautology — it's specifically the AGENTS.md filename CodeWhale keys on. Flipping the name back to AGENTS.md returns to GREEN.

🤖 Generated with Claude Code

CodeWhale reads AGENTS.md from project root per its CONFIGURATION.md —
ponytail already works with no adapter file needed. Added dedicated install
section, agent count bump (13→14), and portability table row.

Also adds Zed to the grouped instruction-only adapter list (same
mechanism: reads AGENTS.md natively).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@DietrichGebert
DietrichGebert merged commit e7e09f8 into DietrichGebert:main Jun 18, 2026
1 check passed
DietrichGebert added a commit that referenced this pull request Jul 9, 2026
…eaders) (#326)

* docs: add JetBrains Junie support (native AGENTS.md reader)

Junie reads AGENTS.md from the project root natively (per JetBrains' official docs), so ponytail works zero-config in any JetBrains IDE — like CodeWhale (#124). Adds a README note + agent-portability row, and bumps the agent badge 16 -> 17. Docs-only.

* docs: also add Amp and Jules support (native AGENTS.md readers)

Amp (Sourcegraph) reads AGENTS.md as its primary guidance file (cwd + parents up to $HOME + global config; per ampcode.com/manual). Jules (Google) auto-reads AGENTS.md from the repo root (per jules.google/docs). Both work zero-config via the AGENTS.md this repo ships. Badge 17->19. Roo Code evaluated and excluded (archived 2026-05-15).

* Merge main; correct Junie AGENTS.md note (Guidelines Path, not automatic)

---------

Co-authored-by: Emeriko <dietrich.gebert@gmail.com>
DevZonayed pushed a commit to DevZonayed/ponytail that referenced this pull request Aug 17, 2026
…etrichGebert#124)

CodeWhale reads AGENTS.md from project root per its CONFIGURATION.md —
ponytail already works with no adapter file needed. Added dedicated install
section, agent count bump (13→14), and portability table row.

Also adds Zed to the grouped instruction-only adapter list (same
mechanism: reads AGENTS.md natively).

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Afristrat pushed a commit to Afristrat/ponytail that referenced this pull request Sep 29, 2026
…etrichGebert#124)

CodeWhale reads AGENTS.md from project root per its CONFIGURATION.md —
ponytail already works with no adapter file needed. Added dedicated install
section, agent count bump (13→14), and portability table row.

Also adds Zed to the grouped instruction-only adapter list (same
mechanism: reads AGENTS.md natively).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants