{"id":48219872,"url":"https://github.com/juliusbrussee/caveman","last_synced_at":"2026-04-07T22:00:58.622Z","repository":{"id":349130225,"uuid":"1201173969","full_name":"JuliusBrussee/caveman","owner":"JuliusBrussee","description":"🪨 why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman","archived":false,"fork":false,"pushed_at":"2026-04-06T18:19:02.000Z","size":94,"stargazers_count":3849,"open_issues_count":5,"forks_count":115,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-04-06T21:03:29.496Z","etag":null,"topics":["ai","anthropic","caveman","claude","claude-code","llm","meme","prompt-engineering","skill","tokens"],"latest_commit_sha":null,"homepage":"https://juliusbrussee.github.io/caveman/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JuliusBrussee.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-04T10:03:00.000Z","updated_at":"2026-04-06T21:03:22.000Z","dependencies_parsed_at":"2026-04-06T21:00:34.177Z","dependency_job_id":null,"html_url":"https://github.com/JuliusBrussee/caveman","commit_stats":null,"previous_names":["juliusbrussee/caveman"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/JuliusBrussee/caveman","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliusBrussee%2Fcaveman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliusBrussee%2Fcaveman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliusBrussee%2Fcaveman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliusBrussee%2Fcaveman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JuliusBrussee","download_url":"https://codeload.github.com/JuliusBrussee/caveman/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliusBrussee%2Fcaveman/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31530647,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","anthropic","caveman","claude","claude-code","llm","meme","prompt-engineering","skill","tokens"],"created_at":"2026-04-04T19:05:20.687Z","updated_at":"2026-04-07T22:00:58.579Z","avatar_url":"https://github.com/JuliusBrussee.png","language":"Python","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://em-content.zobj.net/source/apple/391/rock_1faa8.png\" width=\"120\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003ecaveman\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003ewhy use many token when few token do trick\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#install\"\u003eInstall\u003c/a\u003e •\n  \u003ca href=\"#before--after\"\u003eBefore/After\u003c/a\u003e •\n  \u003ca href=\"#why\"\u003eWhy\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\nA [Claude Code](https://docs.anthropic.com/en/docs/claude-code) skill that makes Claude talk like a caveman — cutting **~75% of tokens** while keeping full technical accuracy.\n\nBased on the viral observation that caveman-speak dramatically reduces LLM token usage without losing technical substance. So we made it a one-line install.\n\n## Before / After\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\"\u003e\n\n### 🗣️ Normal Claude (69 tokens)\n\n\u003e \"The reason your React component is re-rendering is likely because you're creating a new object reference on each render cycle. When you pass an inline object as a prop, React's shallow comparison sees it as a different object every time, which triggers a re-render. I'd recommend using useMemo to memoize the object.\"\n\n\u003c/td\u003e\n\u003ctd width=\"50%\"\u003e\n\n### 🪨 Caveman Claude (19 tokens)\n\n\u003e \"New object ref each render. Inline object prop = new ref = re-render. Wrap in `useMemo`.\"\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n### 🗣️ Normal Claude\n\n\u003e \"Sure! I'd be happy to help you with that. The issue you're experiencing is most likely caused by your authentication middleware not properly validating the token expiry. Let me take a look and suggest a fix.\"\n\n\u003c/td\u003e\n\u003ctd\u003e\n\n### 🪨 Caveman Claude\n\n\u003e \"Bug in auth middleware. Token expiry check use `\u003c` not `\u003c=`. Fix:\"\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n**Same fix. 75% less word. Brain still big.**\n\n## Install\n\n```bash\nnpx skills add JuliusBrussee/caveman\n```\n\nOr with Claude Code plugin system:\n\n```bash\nclaude plugin marketplace add JuliusBrussee/caveman\nclaude plugin install caveman@caveman\n```\n\nOne rock. That it.\n\n## Usage\n\nTrigger with:\n- `/caveman`\n- \"talk like caveman\"\n- \"caveman mode\"\n- \"less tokens please\"\n\nStop with: \"stop caveman\" or \"normal mode\"\n\n## What Caveman Do\n\n| Thing | Caveman Do? |\n|-------|------------|\n| English explanation | 🪨 Caveman smash filler words |\n| Code blocks | ✍️ Write normal (caveman not stupid) |\n| Technical terms | 🧠 Keep exact (polymorphism stay polymorphism) |\n| Error messages | 📋 Quote exact |\n| Git commits \u0026 PRs | ✍️ Write normal |\n| Articles (a, an, the) | 💀 Gone |\n| Pleasantries | 💀 \"Sure I'd be happy to\" is dead |\n| Hedging | 💀 \"It might be worth considering\" extinct |\n\n## Why\n\n```\n┌─────────────────────────────────────┐\n│  TOKENS SAVED          ████████ 75% │\n│  TECHNICAL ACCURACY    ████████ 100%│\n│  SPEED INCREASE        ████████ ~3x │\n│  VIBES                 ████████ OOG │\n└─────────────────────────────────────┘\n```\n\n- **Save money** — 75% less token = 75% less cost on output\n- **Faster response** — less token to generate = speed go brrr\n- **Same accuracy** — all technical info kept, only fluff removed\n- **Fun** — every code review become comedy\n\n## How It Work\n\nCaveman not dumb. Caveman **efficient**.\n\nNormal LLM waste token on:\n- \"I'd be happy to help you with that\" (8 wasted tokens)\n- \"The reason this is happening is because\" (7 wasted tokens)\n- \"I would recommend that you consider\" (7 wasted tokens)\n- \"Sure, let me take a look at that for you\" (10 wasted tokens)\n\nCaveman say what need saying. Then stop.\n\n## Star This Repo\n\nIf caveman save you mass token, mass money — leave mass star. ⭐\n\n## License\n\nMIT — free like mass mammoth on open plain.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuliusbrussee%2Fcaveman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuliusbrussee%2Fcaveman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuliusbrussee%2Fcaveman/lists"}