<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Cost Efficiency on Producthunt daily</title>
        <link>https://producthunt.programnotes.cn/en/tags/cost-efficiency/</link>
        <description>Recent content in Cost Efficiency on Producthunt daily</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <lastBuildDate>Thu, 15 Oct 2026 20:46:54 +0800</lastBuildDate><atom:link href="https://producthunt.programnotes.cn/en/tags/cost-efficiency/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>caveman</title>
        <link>https://producthunt.programnotes.cn/en/p/caveman/</link>
        <pubDate>Thu, 15 Oct 2026 20:46:54 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/caveman/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1671730506849-fbc9c5b32de2?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3OTIwNjgzMTF8&amp;ixlib=rb-4.1.0" alt="Featured image of post caveman" /&gt;&lt;h1 id=&#34;juliusbrusseecaveman&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/JuliusBrussee/caveman&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;JuliusBrussee/caveman&lt;/a&gt;
&lt;/h1&gt;&lt;div align=&#34;center&#34;&gt;
&lt;img src=&#34;docs/assets/caveman-logo-banner.png&#34; alt=&#34;Caveman&#34; width=&#34;720&#34;&gt;
&lt;h1 id=&#34;why-many-token-when-few-do-trick&#34;&gt;why many token when few do trick
&lt;/h1&gt;&lt;p&gt;&lt;strong&gt;Caveman make your AI agent say less and read less. Code stay exact. Brain still big.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/JuliusBrussee/caveman/stargazers&#34;&gt;&lt;img src=&#34;https://img.shields.io/github/stars/JuliusBrussee/caveman?style=flat-square&amp;color=F0A63C&amp;label=stars&#34; alt=&#34;GitHub stars&#34;&gt;&lt;/a&gt;
&lt;a href=&#34;https://www.npmjs.com/package/@caveman-ai/cli&#34;&gt;&lt;img src=&#34;https://img.shields.io/npm/dm/@caveman-ai/cli?style=flat-square&amp;color=F0A63C&amp;label=cli%20downloads&#34; alt=&#34;npm downloads&#34;&gt;&lt;/a&gt;
&lt;a href=&#34;./INSTALL.md&#34;&gt;&lt;img src=&#34;https://img.shields.io/badge/works_with-30%2B_agents-orange?style=flat-square&#34; alt=&#34;30+ agents&#34;&gt;&lt;/a&gt;
&lt;a href=&#34;#license&#34;&gt;&lt;img src=&#34;https://img.shields.io/badge/license-Apache--2.0-green?style=flat-square&#34; alt=&#34;License&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td align=&#34;center&#34; width=&#34;25%&#34;&gt;&lt;h3&gt;33.2% fewer&lt;/h3&gt;input tokens, whole sessions&lt;br&gt;&lt;sub&gt;&lt;a href=&#34;#read-less-332-fewer-input-tokens&#34;&gt;54 Claude Code runs&lt;/a&gt;, 18 of 18 answers right&lt;/sub&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34; width=&#34;25%&#34;&gt;&lt;h3&gt;54% cheaper&lt;/h3&gt;with Auto, same score&lt;br&gt;&lt;sub&gt;&lt;a href=&#34;#auto-54-cheaper-same-score&#34;&gt;85 coding tasks&lt;/a&gt; vs Opus 5.5 at xhigh, interim&lt;/sub&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34; width=&#34;25%&#34;&gt;&lt;h3&gt;397 → 76&lt;/h3&gt;tokens for one test run&lt;br&gt;&lt;sub&gt;&lt;a href=&#34;#blocks-code-mode-script-written-once&#34;&gt;Blocks&lt;/a&gt; vs &lt;code&gt;| tail -20&lt;/code&gt;&lt;/sub&gt;&lt;/td&gt;
&lt;td align=&#34;center&#34; width=&#34;25%&#34;&gt;&lt;h3&gt;1.4 to 2.4× cheaper&lt;/h3&gt;with caveman-style output&lt;br&gt;&lt;sub&gt;&lt;a href=&#34;https://arxiv.org/abs/2606.24083&#34;&gt;Adobe Research&lt;/a&gt;, eight models&lt;/sub&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;Cited by &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://arxiv.org/abs/2606.24083&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Adobe Research&lt;/a&gt;&lt;/strong&gt; · A/B tested by &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.jetbrains.com/ai/2026/07/speak-to-ai-agents-like-cavemen-tosave-tokens/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;JetBrains&lt;/a&gt;&lt;/strong&gt; · Remade for Elasticsearch on &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.elastic.co/search-labs/blog/elastic-caveman-ai-token-reduction&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Elasticsearch Labs&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;#1&lt;/strong&gt; on &lt;a class=&#34;link&#34; href=&#34;https://news.ycombinator.com/item?id=47647455&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Hacker News&lt;/a&gt; · &lt;strong&gt;#1&lt;/strong&gt; on GitHub Trending · &lt;em&gt;&amp;ldquo;No way this actually works.&amp;rdquo;&lt;/em&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.youtube.com/watch?v=L29q2LRiMRc&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ThePrimeagen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;#install&#34; &gt;Install&lt;/a&gt; · &lt;a class=&#34;link&#34; href=&#34;#six-rocks-one-install&#34; &gt;Six rocks&lt;/a&gt; · &lt;a class=&#34;link&#34; href=&#34;#proof&#34; &gt;Proof&lt;/a&gt; · &lt;a class=&#34;link&#34; href=&#34;#say-less-the-caveman-voice&#34; &gt;Say less&lt;/a&gt; · &lt;a class=&#34;link&#34; href=&#34;#read-less-332-fewer-input-tokens&#34; &gt;Read less&lt;/a&gt; · &lt;a class=&#34;link&#34; href=&#34;#auto-54-cheaper-same-score&#34; &gt;Auto&lt;/a&gt; · &lt;a class=&#34;link&#34; href=&#34;#blocks-code-mode-script-written-once&#34; &gt;Blocks&lt;/a&gt; · &lt;a class=&#34;link&#34; href=&#34;#commands&#34; &gt;Commands&lt;/a&gt; · &lt;a class=&#34;link&#34; href=&#34;#caveman-cloud&#34; &gt;Caveman Cloud&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th width=&#34;50%&#34;&gt;Normal agent · 63 tokens&lt;/th&gt;
&lt;th width=&#34;50%&#34;&gt;&lt;img src=&#34;docs/assets/dancing-rock.svg&#34; width=&#34;18&#34; height=&#34;18&#34; alt=&#34;&#34;&gt; Caveman agent · 20 tokens&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=&#34;top&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;The reason your React component is re-rendering is likely because you&amp;rsquo;re creating a new object reference on each render cycle. When you pass an inline object as a prop, React&amp;rsquo;s shallow comparison sees it as a different object every time, which triggers a re-render. I&amp;rsquo;d recommend using useMemo to memoize the object.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/td&gt;
&lt;td valign=&#34;top&#34;&gt;
&lt;blockquote&gt;
&lt;p&gt;New object ref each render, so React re-renders. Wrap the prop in &lt;code&gt;useMemo&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Same fix. 63 token become 20. Brain still big.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Pick your club:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Skill&lt;/th&gt;
					&lt;th&gt;Same answer&lt;/th&gt;
					&lt;th style=&#34;text-align: right&#34;&gt;Tokens&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/caveman&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;New object ref each render, so React re-renders. Wrap the prop in &lt;code&gt;useMemo&lt;/code&gt;.&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;20&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/ultracave&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Inline object prop, new ref, re-render. &lt;code&gt;useMemo&lt;/code&gt;.&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;14&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/megacave&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;新參照致重繪。&lt;code&gt;useMemo&lt;/code&gt;。&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;13&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;sub&gt;Token counts: tiktoken o200k.&lt;/sub&gt;&lt;/p&gt;
&lt;h2 id=&#34;install&#34;&gt;Install
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npx @caveman-ai/cli@latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;One command. Mac, Linux, Windows. Caveman find your agents and your logins, show what it change. Press Enter. Done. Needs Node.js 22.13+.&lt;/p&gt;
&lt;p&gt;After that, plain &lt;code&gt;claude&lt;/code&gt; stays caveman&amp;rsquo;d. So do Codex, Gemini CLI, OpenCode, and &lt;a class=&#34;link&#34; href=&#34;./INSTALL.md&#34; &gt;30+ more&lt;/a&gt;. It runs on your machine, with your keys and your Claude Pro/Max login. One rock. That it.&lt;/p&gt;
&lt;p&gt;&lt;sub&gt;Had caveman before 4.0? Say &lt;code&gt;@latest&lt;/code&gt;, or the old copy on your machine wins. Already set up? &lt;code&gt;caveman setup&lt;/code&gt; opens the screen again. Only want shorter answers? &lt;a href=&#34;#say-less-the-caveman-voice&#34;&gt;Get just the skill&lt;/a&gt;.&lt;/sub&gt;&lt;/p&gt;
&lt;h2 id=&#34;six-rocks-one-install&#34;&gt;Six rocks, one install
&lt;/h2&gt;&lt;p&gt;New in 4.0: caveman is six parts. All on after install. Each has its own switch.&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Rock&lt;/th&gt;
					&lt;th&gt;What it does&lt;/th&gt;
					&lt;th&gt;Measured&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;#say-less-the-caveman-voice&#34; &gt;Say less&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Agent answers short. Code stays exact&lt;/td&gt;
					&lt;td&gt;63 → 20 tokens, same fix&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;#read-less-332-fewer-input-tokens&#34; &gt;Read less&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Logs, JSON, CSV, test output shrink before the model reads them&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;33.2%&lt;/strong&gt; fewer input tokens per session&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;#auto-54-cheaper-same-score&#34; &gt;Auto&lt;/a&gt;&lt;/strong&gt; · new&lt;/td&gt;
					&lt;td&gt;Picks the model and the effort for each ask&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;54%&lt;/strong&gt; cheaper than Opus at xhigh, same score&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;#blocks-code-mode-script-written-once&#34; &gt;Blocks&lt;/a&gt;&lt;/strong&gt; · new&lt;/td&gt;
					&lt;td&gt;Code mode: agent keeps the scripts it writes and runs them again&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;397 → 76&lt;/strong&gt; tokens for one test run&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;#smaller-rocks&#34; &gt;Waste fixes&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Finds where your tokens go and fixes it. New: keeps the prompt cache warm while you pause&lt;/td&gt;
					&lt;td&gt;Not measured yet&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;#smaller-rocks&#34; &gt;Browse&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Web pages come back compressed&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;129.8×&lt;/strong&gt; smaller page&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;code&gt;caveman status&lt;/code&gt; shows what is on. &lt;code&gt;caveman off browse&lt;/code&gt; turns one off. Only Auto needs an account, and it is free. &lt;a class=&#34;link&#34; href=&#34;https://github.com/JuliusBrussee/caveman/releases/tag/v4.0.0&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;4.0.0 release notes&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;proof&#34;&gt;Proof
&lt;/h2&gt;&lt;p&gt;Outside labs first. Ours come with each rock below. Nothing rounded up. Red rows stay red.&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Who&lt;/th&gt;
					&lt;th&gt;Setup&lt;/th&gt;
					&lt;th&gt;Result&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://arxiv.org/abs/2606.24083&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Adobe Research&lt;/a&gt;&lt;/strong&gt;, CAVEWOMAN paper (cites this repo)&lt;/td&gt;
					&lt;td&gt;Caveman-style output, eight models, five datasets&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;Cost cut 1.4 to 2.4× per model, up to 3×&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.elastic.co/search-labs/blog/elastic-caveman-ai-token-reduction&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Elastic&lt;/a&gt;&lt;/strong&gt;, Elasticsearch Labs&lt;/td&gt;
					&lt;td&gt;Caveman mode remade for Elasticsearch, eight live MCP scenarios&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;63.6% fewer response tokens.&lt;/strong&gt; &lt;em&gt;&amp;ldquo;Zero information loss.&amp;rdquo;&lt;/em&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.jetbrains.com/ai/2026/07/speak-to-ai-agents-like-cavemen-tosave-tokens/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;JetBrains&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;86 real coding tasks, paired A/B&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;No measurable quality loss&lt;/strong&gt; (p = 0.82). 8.5% fewer output tokens&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Two findings shaped caveman. Adobe: cavemanning &lt;em&gt;your&lt;/em&gt; prompt makes answers worse, so caveman never touches your prompt. JetBrains: agent sessions are mostly code and tool calls, which the voice leaves alone. So caveman grew rocks that shrink what the agent &lt;em&gt;reads&lt;/em&gt; and what it &lt;em&gt;runs on&lt;/em&gt;.&lt;/p&gt;
&lt;h2 id=&#34;say-less-the-caveman-voice&#34;&gt;Say less: the caveman voice
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;A voice, not broken grammar. Every reply follows the same structure.&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Rule&lt;/th&gt;
					&lt;th&gt;What it means&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Answer first&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;[thing] [action] [reason]. [next step].&lt;/code&gt; No greeting, no &amp;ldquo;let me&amp;rdquo;, no recap&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;One idea per sentence&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Built on &lt;a class=&#34;link&#34; href=&#34;https://www.asd-ste100.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ASD-STE100&lt;/a&gt;, the controlled English of aircraft maintenance manuals: 20 words max, active voice, one term per thing&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Meaning never dropped&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Articles can go. &lt;em&gt;not&lt;/em&gt;, &lt;em&gt;never&lt;/em&gt;, &lt;em&gt;no&lt;/em&gt;, &lt;em&gt;only&lt;/em&gt; never go. Numbers and units stay exact&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Payload verbatim&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Code, commands, paths, and error messages untouched, character for character&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;No theater&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;No &amp;ldquo;me think&amp;rdquo;. No chatter between tool calls. If caveman phrasing isn&amp;rsquo;t shorter, plain wins&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Knows when to stop&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Security warnings, irreversible actions, and confused users get full sentences. Then grunt resumes&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Your prompts stay yours&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Never rewritten. &lt;a class=&#34;link&#34; href=&#34;#proof&#34; &gt;Research say that backfire&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Ten dev questions on claude-opus-5-5:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Instruction&lt;/th&gt;
					&lt;th style=&#34;text-align: right&#34;&gt;Output tokens&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;None&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;6,983&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;Answer concisely.&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;4,334&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/caveman&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;4,119&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/ultracave&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;2,693&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;ldquo;Be concise&amp;rdquo; is the real baseline; new models already know it. On top of it, &lt;code&gt;/caveman&lt;/code&gt; cuts 3% more at the median and &lt;code&gt;/ultracave&lt;/code&gt; 35% more. Measured on the 3.1.0 rules, not yet re-run. The rules cost about 1,160 tokens of input, and if you pay per request (GitHub Copilot), shorter answers save nothing. &lt;a class=&#34;link&#34; href=&#34;./evals/README.md&#34; &gt;Harness&lt;/a&gt; · &lt;a class=&#34;link&#34; href=&#34;./docs/HONEST-NUMBERS.md&#34; &gt;Every case where caveman loses&lt;/a&gt;&lt;/p&gt;
&lt;!-- BENCHMARK-TABLE-START --&gt;
&lt;!-- BENCHMARK-TABLE-END --&gt;
&lt;p&gt;&lt;strong&gt;Only want this rock?&lt;/strong&gt; The skill alone, no proxy:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npx skills add JuliusBrussee/caveman -g
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;a href=&#34;https://skills.sh/JuliusBrussee/caveman&#34;&gt;&lt;img src=&#34;https://skills.sh/b/JuliusBrussee/caveman&#34; alt=&#34;skills.sh&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Type &lt;code&gt;/caveman&lt;/code&gt; (&lt;code&gt;$caveman&lt;/code&gt; in Codex) if it doesn&amp;rsquo;t start on its own. Say &lt;code&gt;stop caveman&lt;/code&gt; to go back.&lt;/p&gt;
&lt;details&gt;
&lt;summary&gt;&lt;strong&gt;Other ways in&lt;/strong&gt;: Claude app and phone, Claude Code plugin, Gemini, every agent at once, Windows, uninstall&lt;/summary&gt;
&lt;br&gt;
&lt;p&gt;Claude on the web, the phone app, or Cowork? No terminal. Add caveman to your Claude account once, in Customize &amp;gt; Plugins: &lt;a class=&#34;link&#34; href=&#34;./INSTALL.md#claude-apps-claudeai-desktop-mobile-cowork&#34; &gt;steps&lt;/a&gt;. Not tested end to end yet.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Claude Code plugin, auto-starts every interactive session, subagents too&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude plugin marketplace add JuliusBrussee/caveman &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; claude plugin install caveman@caveman
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Gemini CLI&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gemini extensions install https://github.com/JuliusBrussee/caveman
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Every agent on your machine at once, plus the Claude Code statusline badge (Node.js 22.13+)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://raw.githubusercontent.com/JuliusBrussee/caveman/v4.0.1/install.sh &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Already inside Claude Code? Same rock, slash form. Type these where you talk to Claude:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/plugin marketplace add JuliusBrussee/caveman
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/plugin install caveman@caveman
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Windows, PowerShell 5.1+:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;irm &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;https&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;//&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;raw&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;githubusercontent&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;com&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;JuliusBrussee&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;caveman&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;v4&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;install&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;ps1&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;iex
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;On npm 12 or newer, new npm block git install. One-liners above handle it themselves from v3.2.0 on. Old one-liner pinned to v3.1.0 or older still fail there: use one above, or this:
&lt;code&gt;npx --allow-git=root -y github:JuliusBrussee/caveman#v4.0.1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Changed your mind: &lt;code&gt;npx -y github:JuliusBrussee/caveman -- --uninstall&lt;/code&gt; (on npm 12+, add &lt;code&gt;--allow-git=root&lt;/code&gt; too)&lt;/p&gt;
&lt;p&gt;Only grabbed the skill? &lt;code&gt;npx skills remove JuliusBrussee/caveman -g&lt;/code&gt; take it back out.&lt;/p&gt;
&lt;p&gt;Install broke? Open your agent in this repo and say &lt;em&gt;&amp;ldquo;Read CLAUDE.md and INSTALL.md, install caveman for me.&amp;rdquo;&lt;/em&gt; Agent fix own brain.&lt;/p&gt;
&lt;/details&gt;
&lt;h2 id=&#34;read-less-332-fewer-input-tokens&#34;&gt;Read less: 33.2% fewer input tokens
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;The voice shrinks what the agent says. This shrinks what it reads. Same answers: 18 of 18 right.&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;File type&lt;/th&gt;
					&lt;th style=&#34;text-align: right&#34;&gt;The file, through caveman&lt;/th&gt;
					&lt;th style=&#34;text-align: right&#34;&gt;File saved&lt;/th&gt;
					&lt;th style=&#34;text-align: right&#34;&gt;Whole Claude Code session, 3 runs&lt;/th&gt;
					&lt;th style=&#34;text-align: right&#34;&gt;Session saved&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;CSV&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;28,041 → &lt;strong&gt;314&lt;/strong&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;98.9%&lt;/strong&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;165,823 → 74,484&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;55.1%&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Logs&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;22,810 → &lt;strong&gt;348&lt;/strong&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;98.5%&lt;/strong&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;148,807 → 74,068&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;50.2%&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;YAML&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;20,447 → &lt;strong&gt;178&lt;/strong&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;99.1%&lt;/strong&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;132,124 → 71,027&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;46.2%&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Test output&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;18,806 → &lt;strong&gt;203&lt;/strong&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;98.9%&lt;/strong&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;150,377 → 108,514&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;27.8%&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;JSON&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;18,837 → &lt;strong&gt;281&lt;/strong&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;98.5%&lt;/strong&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;147,975 → 108,939&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;26.4%&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;HTML&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;21,670 → 21,670&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;none yet&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;140,687 → 154,641&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;9.9% worse&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;All six&lt;/strong&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;130,611 → 22,994&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;82.4%&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;885,793 → 591,673&lt;/strong&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;33.2%&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;em&gt;The file&lt;/em&gt; is each test file through today&amp;rsquo;s compressor alone. &lt;em&gt;The session&lt;/em&gt; is the whole agent run, which also carries the system prompt and tools, so it moves less. Honest part: the session run is from August 2026 on an older engine, HTML has no compressor yet so it lost, and each test file hides one record in 61 to 72 KB of noise. Yours will vary. Headroom on the same suite: 15 of 18 right, 6.7% fewer tokens. &lt;a class=&#34;link&#34; href=&#34;./docs/WRAP-BENCHMARK.md#per-file-compression&#34; &gt;Method&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Every original stays on your disk. The agent can pull it back any time.&lt;/p&gt;
&lt;h2 id=&#34;auto-54-cheaper-same-score&#34;&gt;Auto: 54% cheaper, same score
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;New model in your agent&amp;rsquo;s picker. Pick Auto and caveman chooses the model and the effort for each ask. Hard ask, big brain. Easy ask, save rocks.&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Setup&lt;/th&gt;
					&lt;th style=&#34;text-align: right&#34;&gt;Tasks solved&lt;/th&gt;
					&lt;th style=&#34;text-align: right&#34;&gt;Cost per try&lt;/th&gt;
					&lt;th style=&#34;text-align: right&#34;&gt;Median time&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Opus 5.5, xhigh effort, every ask&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;44.3%&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;$7.83&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;35.2 min&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Auto&lt;/strong&gt;, Claude models only&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;43.7%&lt;/strong&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;$3.59&lt;/strong&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;15.9 min&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Auto&lt;/strong&gt;, plus OpenAI and open models&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;42.9%&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;$3.47&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;16.7 min&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Auto costs 0.46× what Opus 5.5 at xhigh costs. That is 54% saved, in under half the time. 85 real coding tasks from SWE-Interact and SWE-Together, one try each. Honest part: the run is half done, the 0.5-point score gap is too small to tell apart at this size (±7), and most of the saving is Auto lowering effort on easy asks. Already on Opus at medium? Expect less; not measured yet. &lt;a class=&#34;link&#34; href=&#34;./docs/AUTO-BENCHMARK.md&#34; &gt;Full table and limits&lt;/a&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;caveman login                  &lt;span class=&#34;c1&#34;&gt;# free account. Auto shows up in the model picker&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;caveman providers add openai   &lt;span class=&#34;c1&#34;&gt;# optional: give Auto more models, on your own key&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Works in Claude Code, OpenCode, and Codex on a ChatGPT login, with API keys, Claude Pro/Max, or ChatGPT. Any other model you pick runs as picked. Not signed in: no Auto, nothing sent. &lt;a class=&#34;link&#34; href=&#34;#privacy&#34; &gt;What Auto sends&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;blocks-code-mode-script-written-once&#34;&gt;Blocks: code mode, script written once
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;skills.sh for code mode.&lt;/strong&gt; Code mode is the agent writing a script instead of making tool call after tool call (&lt;a class=&#34;link&#34; href=&#34;https://blog.cloudflare.com/code-mode/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Cloudflare&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://www.anthropic.com/engineering/code-execution-with-mcp&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Anthropic&lt;/a&gt;). Problem: agent write same script every session, throw it away, write it again. Blocks keep it in your repo, check it every pull request, hand it back.&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Input&lt;/th&gt;
					&lt;th style=&#34;text-align: right&#34;&gt;Raw&lt;/th&gt;
					&lt;th style=&#34;text-align: right&#34;&gt;What agents type now&lt;/th&gt;
					&lt;th style=&#34;text-align: right&#34;&gt;Block&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;go test -v ./...&lt;/code&gt;, 326 tests&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;10,561&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;397 · &lt;code&gt;| tail -20&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;76&lt;/strong&gt; · &lt;code&gt;test-summary&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;1.4 MB JSON file&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;251,893&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;236 · their own heredoc&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;227&lt;/strong&gt; · &lt;code&gt;json-peek&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;366-line Go file&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;3,111&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;250&lt;/strong&gt; · &lt;code&gt;grep -n&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;489 · &lt;code&gt;grep-defs&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Tokens the agent reads back. In one week, agents on one machine wrote the same script &lt;a class=&#34;link&#34; href=&#34;https://github.com/caveman-ai/blocks#one-script-written-394-times-in-a-week&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;394 times&lt;/a&gt;. &lt;a class=&#34;link&#34; href=&#34;https://arxiv.org/abs/2609.30725&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Purdue&lt;/a&gt; measured the habit at up to 9.57% of task cost. &lt;code&gt;grep-defs&lt;/code&gt; loses to a bare grep; row stays. &lt;a class=&#34;link&#34; href=&#34;https://github.com/caveman-ai/blocks#blocks-against-what-agents-type-now&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Method&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Comes with caveman. Eight blocks ready: &lt;code&gt;json-peek&lt;/code&gt; · &lt;code&gt;jsonl-stats&lt;/code&gt; · &lt;code&gt;test-summary&lt;/code&gt; · &lt;code&gt;first-error&lt;/code&gt; · &lt;code&gt;wait-for&lt;/code&gt; · &lt;code&gt;grep-defs&lt;/code&gt; · &lt;code&gt;http-json&lt;/code&gt; · &lt;code&gt;replace-in-file&lt;/code&gt;. When the agent starts typing a script a block already covers, it gets one line: use the block. Never denies or rewrites a command.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;caveman-blocks scan    &lt;span class=&#34;c1&#34;&gt;# what your agents retyped this month. Script text never leaves your machine&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;caveman-blocks init    &lt;span class=&#34;c1&#34;&gt;# rules and block index into this repo&amp;#39;s AGENTS.md&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Pre-release (v0.1.0-rc.5). Python only, no sandbox yet. Own repo, own stars: &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/caveman-ai/blocks&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;caveman-ai/blocks&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;smaller-rocks&#34;&gt;Smaller rocks
&lt;/h2&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Rock&lt;/th&gt;
					&lt;th&gt;What it does&lt;/th&gt;
					&lt;th&gt;Measured&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;caveman learn&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Ranks where your tokens go, from agent history already on disk. &lt;code&gt;caveman learn implement&lt;/code&gt; applies fixes one diff at a time, only on your yes&lt;/td&gt;
					&lt;td&gt;Not yet&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Warm cache · new&lt;/td&gt;
					&lt;td&gt;Step away and the provider forgets your session, so the next ask pays full price. Caveman keeps Anthropic&amp;rsquo;s prompt cache warm while you pause, only when your own history says you come back in time. Every warm is listed in &lt;code&gt;caveman stats&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Not yet&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;caveman browse &amp;lt;url&amp;gt;&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;A compressed web page for the agent&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;121 tokens instead of 15,704&lt;/strong&gt; for a Playwright snapshot of a 200-row table. Tiny forms lose 2.3×. &lt;a class=&#34;link&#34; href=&#34;./browse/BENCHMARK.md&#34; &gt;Bench&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/caveman-compress &amp;lt;file&amp;gt;&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Shrinks memory files like &lt;code&gt;CLAUDE.md&lt;/code&gt;, keeps a backup&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;4,138 tokens instead of 6,198&lt;/strong&gt; across five files, 22.8% to 49.1% each, every heading, code block, and path intact. &lt;a class=&#34;link&#34; href=&#34;./skills/caveman-compress/README.md#benchmarks&#34; &gt;Bench&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Middleware&lt;/td&gt;
					&lt;td&gt;Same shrinking inside the Vercel AI SDK, LangChain, OpenAI, or Anthropic call you already make. &lt;a class=&#34;link&#34; href=&#34;./packages/middleware/typescript/README.md&#34; &gt;TypeScript&lt;/a&gt; · &lt;a class=&#34;link&#34; href=&#34;./packages/middleware/python/README.md&#34; &gt;Python&lt;/a&gt; · &lt;a class=&#34;link&#34; href=&#34;https://docs.caveman.so/caveman/middleware&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Every framework&lt;/a&gt; · &lt;a class=&#34;link&#34; href=&#34;docs/technical/deploy.md&#34; &gt;One container for the team&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;Not yet&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p align=&#34;center&#34;&gt;
  &lt;img src=&#34;docs/assets/learn-report.png&#34; alt=&#34;Caveman Learn report: a summary and savings cards on the left; the biggest places tokens go, with one fix opened, and a chart of how full sessions get on the right&#34; width=&#34;900&#34;&gt;
&lt;/p&gt;
&lt;h2 id=&#34;commands&#34;&gt;Commands
&lt;/h2&gt;&lt;p&gt;In your terminal:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;caveman claude                &lt;span class=&#34;c1&#34;&gt;# start an agent on caveman: codex · gemini · opencode · aider · kilo · qwen · hermes · openclaw · pi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;caveman status                &lt;span class=&#34;c1&#34;&gt;# what is on, which agents it reaches, one next step&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;caveman on browse             &lt;span class=&#34;c1&#34;&gt;# switch one rock on or off: output · input · waste-fixes · routing · scripts · browse&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;caveman login                 &lt;span class=&#34;c1&#34;&gt;# free account, turns on Auto&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;caveman learn                 &lt;span class=&#34;c1&#34;&gt;# where your tokens go&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;caveman trial -- claude       &lt;span class=&#34;c1&#34;&gt;# A/B a real session on your own work&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;caveman shrink -- pnpm &lt;span class=&#34;nb&#34;&gt;test&lt;/span&gt;   &lt;span class=&#34;c1&#34;&gt;# compress noisy command output&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;caveman convert --dry-run     &lt;span class=&#34;c1&#34;&gt;# pixel mode: skills the model reads as images&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;caveman stats                 &lt;span class=&#34;c1&#34;&gt;# your token history&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;caveman doctor                &lt;span class=&#34;c1&#34;&gt;# one problem per line, with its fix&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;In your agent:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Command&lt;/th&gt;
					&lt;th&gt;What it does&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/caveman&lt;/code&gt; · &lt;code&gt;/ultracave&lt;/code&gt; · &lt;code&gt;/megacave&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;The voice, the grunt, the 文言文. &lt;code&gt;/caveman status&lt;/code&gt; shows the mode, &lt;code&gt;/caveman off&lt;/code&gt; stops it&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/caveman-commit&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;One-line Conventional Commit&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/caveman-review&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;One finding per line: &lt;code&gt;L42: 🔴 null deref. Guard it.&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/caveman-compress &amp;lt;file&amp;gt;&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Shrinks memory files and backs up the original&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/caveman-stats&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Real token usage for this Claude Code session&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/caveman-help&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Every mode and command on one screen&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;cavecrew&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Subagents that find, edit, and review code, then report back in caveman&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;investigate-first&lt;/code&gt; · &lt;code&gt;lean-build&lt;/code&gt; · &lt;code&gt;surgical-patch&lt;/code&gt; · &lt;code&gt;safe-refactor&lt;/code&gt; · &lt;code&gt;migration&lt;/code&gt; · &lt;code&gt;verify-and-stop&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Work patterns that write less code. Your agent picks them up when a task fits&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;caveman-setup&lt;/code&gt; · &lt;code&gt;caveman-discover&lt;/code&gt; · &lt;code&gt;caveman-learn&lt;/code&gt; · &lt;code&gt;caveman-manage&lt;/code&gt; · &lt;code&gt;caveman-optimize&lt;/code&gt; · &lt;code&gt;caveman-explore&lt;/code&gt; · &lt;code&gt;caveman-evidence-review&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Drive the proxy from inside your agent&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;caveman-cloud&#34;&gt;Caveman Cloud
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Everything above is for the coding agent you use. Caveman Cloud is for the agents you build.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You ship an agent. Every run costs money. Is it good? Is it cheap? Which change made it worse? Cloud answers.&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Cloud does&lt;/th&gt;
					&lt;th&gt;What you get&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Observability&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Every run traced to the work and what it cost. Sets itself up from your repo, your keys, and the logs or OpenTelemetry you already have&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Evals&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Grades how good the answers are, on your own tasks, from your real traffic&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Autopilot&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Proposes a cheaper change, tests it on your recorded work, ships only when the evals say answers are still as good. You approve the pull request&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Proof&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Every number says if it is measured, inferred, or verified. A saving counts only after real traffic shows it&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p align=&#34;center&#34;&gt;
&lt;a href=&#34;https://app.caveman.so/signup&#34;&gt;&lt;b&gt;Sign up free&lt;/b&gt;&lt;/a&gt; &amp;nbsp;·&amp;nbsp; &lt;a href=&#34;https://caveman.so/demo&#34;&gt;Try the demo&lt;/a&gt; &amp;nbsp;·&amp;nbsp; &lt;a href=&#34;https://cal.com/caveman/chat&#34;&gt;Book a call&lt;/a&gt; &amp;nbsp;·&amp;nbsp; &lt;a href=&#34;https://docs.caveman.so&#34;&gt;Docs&lt;/a&gt;
&lt;/p&gt;
&lt;h2 id=&#34;in-the-wild&#34;&gt;In the wild
&lt;/h2&gt;&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=L29q2LRiMRc&#34;&gt;&lt;img src=&#34;https://img.youtube.com/vi/L29q2LRiMRc/hqdefault.jpg&#34; alt=&#34;ThePrimeagen reacts to Caveman: No way this actually works&#34; width=&#34;340&#34; align=&#34;right&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ThePrimeagen&lt;/strong&gt;: &lt;em&gt;&amp;ldquo;No way this actually works.&amp;rdquo;&lt;/em&gt; &lt;a class=&#34;link&#34; href=&#34;https://www.youtube.com/watch?v=L29q2LRiMRc&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Watch&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Adobe Research&lt;/strong&gt;: &lt;a class=&#34;link&#34; href=&#34;https://arxiv.org/abs/2606.24083&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;CAVEWOMAN&lt;/a&gt;, arXiv, June 2026&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;JetBrains&lt;/strong&gt;: &lt;em&gt;&amp;ldquo;It is fun, and it costs you nothing measurable in quality.&amp;rdquo;&lt;/em&gt; &lt;a class=&#34;link&#34; href=&#34;https://blog.jetbrains.com/ai/2026/07/speak-to-ai-agents-like-cavemen-tosave-tokens/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Read&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Elastic&lt;/strong&gt;: &lt;a class=&#34;link&#34; href=&#34;https://www.elastic.co/search-labs/blog/elastic-caveman-ai-token-reduction&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;elastic-caveman&lt;/a&gt; on Elasticsearch Labs, April 2026&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hacker News&lt;/strong&gt;: &lt;a class=&#34;link&#34; href=&#34;https://news.ycombinator.com/item?id=47647455&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;#1, 904 points&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;GitHub Trending&lt;/strong&gt; #1 overall, July 2026 · &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://trendshift.io/repositories/25391&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Trendshift&lt;/a&gt;&lt;/strong&gt; #1 repo of the day, April 2026 · &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.producthunt.com/products/caveman&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Product Hunt&lt;/a&gt;&lt;/strong&gt; #8 of the day&lt;/p&gt;
&lt;p&gt;Started as a joke in April 2026. Now past 100,000 stars. Joke got serious. Voice did not.&lt;/p&gt;
&lt;br clear=&#34;right&#34;&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://star-history.com/#JuliusBrussee/caveman&amp;amp;Date&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;privacy&#34;&gt;Privacy
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The skill&lt;/strong&gt; runs on your machine and sends nothing. One exception: &lt;code&gt;/caveman-compress&lt;/code&gt; sends the file you compress to your configured model provider.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The CLI&lt;/strong&gt; sends usage stats by default: commands run, token counts, caveman-blocks commands and usage counts, a random install ID, OS, and IP. Never your prompts, code, file paths, or scripts you wrote. One person maintains this for free, and those stats show what to build next. Off for good, Blocks included: &lt;code&gt;caveman telemetry off&lt;/code&gt; or &lt;code&gt;DO_NOT_TRACK=1&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Auto&lt;/strong&gt;, only once you sign in and pick it: each ask sends Caveman Cloud your latest ask (with whatever your agent attaches to it, such as CLAUDE.md, memory or @-mentioned files), the one before it, and the end of the agent&amp;rsquo;s last reply, plus each request&amp;rsquo;s tool names, effort, a few agent headers, and the previous request&amp;rsquo;s token counts. On the Free plan Caveman may keep it to improve routing. &lt;code&gt;caveman off routing&lt;/code&gt; stops it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Where requests go:&lt;/strong&gt; from your machine to your provider, or to another provider you added with &lt;code&gt;caveman providers add&lt;/code&gt;, on your own key. Only a request routed to a Caveman Cloud model passes through Caveman Cloud, whole (system prompt, tool results, code), on your Caveman project&amp;rsquo;s stored key, billed to that project. &lt;code&gt;caveman providers cloud off&lt;/code&gt; stops that.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The full list, and how to delete sent telemetry: &lt;a class=&#34;link&#34; href=&#34;./SECURITY.md&#34; &gt;SECURITY.md&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;license&#34;&gt;License
&lt;/h2&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;./LICENSE&#34; &gt;Apache-2.0&lt;/a&gt;, whole repo. Read it, fork it, ship it, host it. Free like mammoth on open plain. Older releases and third-party notices: &lt;a class=&#34;link&#34; href=&#34;./LICENSING.md&#34; &gt;LICENSING.md&lt;/a&gt;. &amp;ldquo;Caveman&amp;rdquo; and the rock logo are trademarks of Julius Brussee.&lt;/p&gt;
&lt;h2 id=&#34;cite&#34;&gt;Cite
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bibtex&#34; data-lang=&#34;bibtex&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nc&#34;&gt;@software&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;nl&#34;&gt;brussee2026caveman&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;na&#34;&gt;author&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;{Brussee, Julius}&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;na&#34;&gt;title&lt;/span&gt;  &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;{Caveman: why many token when few do trick}&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;na&#34;&gt;year&lt;/span&gt;   &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;{2026}&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;na&#34;&gt;url&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;{https://github.com/JuliusBrussee/caveman}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;hr&gt;
&lt;div align=&#34;center&#34;&gt;
&lt;p&gt;🪨 &lt;strong&gt;Caveman save you token. Star cost zero. Fair trade.&lt;/strong&gt;&lt;/p&gt;
&lt;sub&gt;
&lt;a href=&#34;./docs/README.md&#34;&gt;Docs&lt;/a&gt; ·
&lt;a href=&#34;./INSTALL.md&#34;&gt;Install matrix&lt;/a&gt; ·
&lt;a href=&#34;./docs/HONEST-NUMBERS.md&#34;&gt;Honest numbers&lt;/a&gt; ·
&lt;a href=&#34;./CONTRIBUTING.md&#34;&gt;Contributing&lt;/a&gt; ·
&lt;a href=&#34;https://app.caveman.so/signup&#34;&gt;Caveman Cloud&lt;/a&gt; ·
&lt;a href=&#34;https://github.com/JuliusBrussee/caveman/issues&#34;&gt;Issues&lt;/a&gt;
&lt;/sub&gt;
&lt;/div&gt;
</description>
        </item>
        
    </channel>
</rss>
