6206 lines
310 KiB
HTML
6206 lines
310 KiB
HTML
<!--https://www.reddit.com/r/ClaudeAI/comments/1t1o43w/i_gave_claude_code_a_002call_coworker_and_stopped/-->
|
||
<!--https://medium.com/@kunalbhardwaj598/i-was-burning-through-claude-codes-weekly-limit-in-3-days-here-s-how-i-fixed-it-0344c555abda-->
|
||
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<title data-rh="true">I Was Burning Through Claude Code’s Weekly Limit in 3 Days. Here’s How I Fixed It. | by Kunalbhardwaj | May, 2026 | Medium</title>
|
||
<meta data-rh="true" charset="utf-8"/>
|
||
<meta data-rh="true" name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,maximum-scale=1"/>
|
||
<meta data-rh="true" name="theme-color" content="#000000"/>
|
||
<meta data-rh="true" name="twitter:app:name:iphone" content="Medium"/>
|
||
<meta data-rh="true" name="twitter:app:id:iphone" content="828256236"/>
|
||
<meta data-rh="true" property="al:ios:app_name" content="Medium"/>
|
||
<meta data-rh="true" property="al:ios:app_store_id" content="828256236"/>
|
||
<meta data-rh="true" property="al:android:package" content="com.medium.reader"/>
|
||
<meta data-rh="true" property="fb:app_id" content="542599432471018"/>
|
||
<meta data-rh="true" property="og:site_name" content="Medium"/>
|
||
<meta data-rh="true" name="apple-itunes-app" content="app-id=828256236, app-argument=/@kunalbhardwaj598/i-was-burning-through-claude-codes-weekly-limit-in-3-days-here-s-how-i-fixed-it-0344c555abda, affiliate-data=pt=698524&ct=smart_app_banner&mt=8"/>
|
||
<meta data-rh="true" property="og:type" content="article"/>
|
||
<meta data-rh="true" property="article:published_time" content="2026-05-02T10:51:37.588Z"/>
|
||
<meta data-rh="true" name="title" content="I Was Burning Through Claude Code’s Weekly Limit in 3 Days. Here’s How I Fixed It. | by Kunalbhardwaj | May, 2026 | Medium"/>
|
||
<meta data-rh="true" property="og:title" content="I Was Burning Through Claude Code’s Weekly Limit in 3 Days. Here’s How I Fixed It."/>
|
||
<meta data-rh="true" property="al:android:url" content="medium://p/0344c555abda"/>
|
||
<meta data-rh="true" property="al:ios:url" content="medium://p/0344c555abda"/>
|
||
<meta data-rh="true" property="al:android:app_name" content="Medium"/>
|
||
<meta data-rh="true" name="description" content="I Was Burning Through Claude Code’s Weekly Limit in 3 Days. Here’s How I Fixed It. I build drone guidance systems for a living. Ground control stations, onboard computers, MAVLink protocols …"/>
|
||
<meta data-rh="true" property="og:description" content="I build drone guidance systems for a living. Ground control stations, onboard computers, MAVLink protocols, gimbal control loops —…"/>
|
||
<meta data-rh="true" property="og:url" content="https://medium.com/@kunalbhardwaj598/i-was-burning-through-claude-codes-weekly-limit-in-3-days-here-s-how-i-fixed-it-0344c555abda"/>
|
||
<meta data-rh="true" property="al:web:url" content="https://medium.com/@kunalbhardwaj598/i-was-burning-through-claude-codes-weekly-limit-in-3-days-here-s-how-i-fixed-it-0344c555abda"/>
|
||
<meta data-rh="true" property="og:image" content="https://miro.medium.com/v2/resize:fit:1200/1*J868m-kmZStk7WFORZ83Aw.png"/>
|
||
<meta data-rh="true" property="article:author" content="https://medium.com/@kunalbhardwaj598"/>
|
||
<meta data-rh="true" name="author" content="Kunalbhardwaj"/>
|
||
<meta data-rh="true" name="robots" content="noindex,follow,max-image-preview:large"/>
|
||
<meta data-rh="true" name="referrer" content="unsafe-url"/>
|
||
<meta data-rh="true" property="twitter:title" content="I Was Burning Through Claude Code’s Weekly Limit in 3 Days. Here’s How I Fixed It."/>
|
||
<meta data-rh="true" name="twitter:site" content="@Medium"/>
|
||
<meta data-rh="true" name="twitter:app:url:iphone" content="medium://p/0344c555abda"/>
|
||
<meta data-rh="true" property="twitter:description" content="I build drone guidance systems for a living. Ground control stations, onboard computers, MAVLink protocols, gimbal control loops —…"/>
|
||
<meta data-rh="true" name="twitter:image:src" content="https://miro.medium.com/v2/resize:fit:1200/1*J868m-kmZStk7WFORZ83Aw.png"/>
|
||
<meta data-rh="true" name="twitter:card" content="summary_large_image"/>
|
||
<meta data-rh="true" name="twitter:label1" content="Reading time"/>
|
||
<meta data-rh="true" name="twitter:data1" content="7 min read"/>
|
||
<link data-rh="true" rel="icon" href="https://miro.medium.com/v2/5d8de952517e8160e40ef9841c781cdc14a5db313057fa3c3de41c6f5b494b19"/>
|
||
<link data-rh="true" rel="search" type="application/opensearchdescription+xml" title="Medium" href="/osd.xml"/>
|
||
<link data-rh="true" rel="apple-touch-icon" sizes="152x152" href="https://miro.medium.com/v2/resize:fill:304:304/10fd5c419ac61637245384e7099e131627900034828f4f386bdaa47a74eae156"/>
|
||
<link data-rh="true" rel="apple-touch-icon" sizes="120x120" href="https://miro.medium.com/v2/resize:fill:240:240/10fd5c419ac61637245384e7099e131627900034828f4f386bdaa47a74eae156"/>
|
||
<link data-rh="true" rel="apple-touch-icon" sizes="76x76" href="https://miro.medium.com/v2/resize:fill:152:152/10fd5c419ac61637245384e7099e131627900034828f4f386bdaa47a74eae156"/>
|
||
<link data-rh="true" rel="apple-touch-icon" sizes="60x60" href="https://miro.medium.com/v2/resize:fill:120:120/10fd5c419ac61637245384e7099e131627900034828f4f386bdaa47a74eae156"/>
|
||
<link data-rh="true" rel="mask-icon" href="https://miro.medium.com/v2/resize:fill:1000:1000/7*GAOKVe--MXbEJmV9230oOQ.png" color="#171717"/>
|
||
<link data-rh="true" rel="preconnect" href="https://glyph.medium.com" crossOrigin=""/>
|
||
<link data-rh="true" rel="manifest" href="/manifest.json"/>
|
||
<link data-rh="true" rel="preconnect" href="https://www.google.com"/>
|
||
<link data-rh="true" rel="preconnect" href="https://www.gstatic.com" crossOrigin=""/>
|
||
<link data-rh="true" id="glyph_preload_link" rel="preload" as="style" type="text/css" href="https://glyph.medium.com/css/unbound.css"/>
|
||
<link data-rh="true" id="glyph_link" rel="stylesheet" type="text/css" href="https://glyph.medium.com/css/unbound.css"/>
|
||
<link data-rh="true" rel="author" href="https://medium.com/@kunalbhardwaj598"/>
|
||
<link data-rh="true" rel="canonical" href="https://medium.com/@kunalbhardwaj598/i-was-burning-through-claude-codes-weekly-limit-in-3-days-here-s-how-i-fixed-it-0344c555abda"/>
|
||
<link data-rh="true" rel="alternate" href="android-app://com.medium.reader/https/medium.com/p/0344c555abda"/>
|
||
<script data-rh="true" type="application/ld+json">
|
||
{
|
||
"@context": "https://schema.org",
|
||
"@id": "https://medium.com/@kunalbhardwaj598/i-was-burning-through-claude-codes-weekly-limit-in-3-days-here-s-how-i-fixed-it-0344c555abda",
|
||
"@type": "SocialMediaPosting",
|
||
"image": [
|
||
"https://miro.medium.com/1*J868m-kmZStk7WFORZ83Aw.png"
|
||
],
|
||
"url": "https://medium.com/@kunalbhardwaj598/i-was-burning-through-claude-codes-weekly-limit-in-3-days-here-s-how-i-fixed-it-0344c555abda",
|
||
"dateCreated": "2026-05-02T10:51:37Z",
|
||
"datePublished": "2026-05-02T10:51:37Z",
|
||
"dateModified": "2026-05-02T10:51:37Z",
|
||
"headline": "I Was Burning Through Claude Code’s Weekly Limit in 3 Days. Here’s How I Fixed It.",
|
||
"name": "I Was Burning Through Claude Code’s Weekly Limit in 3 Days. Here’s How I Fixed It.",
|
||
"description": "I Was Burning Through Claude Code’s Weekly Limit in 3 Days. Here’s How I Fixed It. I build drone guidance systems for a living. Ground control stations, onboard computers, MAVLink protocols …",
|
||
"identifier": "0344c555abda",
|
||
"author": {
|
||
"@context": "https://schema.org",
|
||
"@id": "https://medium.com/@kunalbhardwaj598",
|
||
"@type": "Person",
|
||
"identifier": "kunalbhardwaj598",
|
||
"name": "Kunalbhardwaj",
|
||
"url": "https://medium.com/@kunalbhardwaj598"
|
||
},
|
||
"creator": {
|
||
"@context": "https://schema.org",
|
||
"@id": "https://medium.com/@kunalbhardwaj598",
|
||
"@type": "Person",
|
||
"identifier": "kunalbhardwaj598",
|
||
"name": "Kunalbhardwaj",
|
||
"url": "https://medium.com/@kunalbhardwaj598"
|
||
},
|
||
"publisher": {
|
||
"@context": "https://schema.org",
|
||
"@type": "Organization",
|
||
"@id": "https://medium.com",
|
||
"name": "Medium",
|
||
"url": "https://medium.com",
|
||
"logo": {
|
||
"@type": "ImageObject",
|
||
"width": 500,
|
||
"height": 110,
|
||
"url": "https://miro.medium.com/v2/resize:fit:500/7%2AV1_7XP4snlmqrc_0Njontw.png"
|
||
}
|
||
},
|
||
"mainEntityOfPage": "https://medium.com/@kunalbhardwaj598/i-was-burning-through-claude-codes-weekly-limit-in-3-days-here-s-how-i-fixed-it-0344c555abda",
|
||
"isAccessibleForFree": true
|
||
}</script>
|
||
<script data-rh="true" src="https://www.google.com/recaptcha/enterprise.js?render=6Le-uGgpAAAAAPprRaokM8AKthQ9KNGdoxaGUvVp" async="true"></script>
|
||
<style type="text/css" data-fela-rehydration="590" data-fela-type="STATIC">
|
||
html {
|
||
box-sizing: border-box;
|
||
-webkit-text-size-adjust: 100%
|
||
}
|
||
|
||
*, *:before, *:after {
|
||
box-sizing: inherit
|
||
}
|
||
|
||
body {
|
||
margin: 0;
|
||
padding: 0;
|
||
text-rendering: optimizeLegibility;
|
||
-webkit-font-smoothing: antialiased;
|
||
color: rgba(0,0,0,0.8);
|
||
position: relative;
|
||
min-height: 100vh
|
||
}
|
||
|
||
h1, h2, h3, h4, h5, h6, dl, dd, ol, ul, menu, figure, blockquote, p, pre, form {
|
||
margin: 0
|
||
}
|
||
|
||
menu, ol, ul {
|
||
padding: 0;
|
||
list-style: none;
|
||
list-style-image: none
|
||
}
|
||
|
||
main {
|
||
display: block
|
||
}
|
||
|
||
a {
|
||
color: inherit;
|
||
text-decoration: none
|
||
}
|
||
|
||
a, button, input {
|
||
-webkit-tap-highlight-color: transparent
|
||
}
|
||
|
||
img, svg {
|
||
vertical-align: middle
|
||
}
|
||
|
||
button {
|
||
background: transparent;
|
||
overflow: visible
|
||
}
|
||
|
||
button, input, optgroup, select, textarea {
|
||
margin: 0
|
||
}
|
||
|
||
:root {
|
||
--reach-tabs: 1;
|
||
--reach-menu-button: 1
|
||
}
|
||
|
||
#speechify-root {
|
||
font-family: Sohne, sans-serif
|
||
}
|
||
|
||
div[data-popper-reference-hidden="true"] {
|
||
visibility: hidden;
|
||
pointer-events: none
|
||
}
|
||
|
||
.grecaptcha-badge {
|
||
visibility: hidden
|
||
}
|
||
|
||
/*XCode style (c) Angel Garcia <angelgarcia.mail@gmail.com>*/
|
||
.hljs {
|
||
background: #fff;
|
||
color: black;
|
||
}
|
||
|
||
/* Gray DOCTYPE selectors like WebKit */
|
||
.xml .hljs-meta {
|
||
color: #c0c0c0;
|
||
}
|
||
|
||
.hljs-comment, .hljs-quote {
|
||
color: #007400;
|
||
}
|
||
|
||
.hljs-tag, .hljs-attribute, .hljs-keyword, .hljs-selector-tag, .hljs-literal, .hljs-name {
|
||
color: #aa0d91;
|
||
}
|
||
|
||
.hljs-variable, .hljs-template-variable {
|
||
color: #3F6E74;
|
||
}
|
||
|
||
.hljs-code, .hljs-string, .hljs-meta .hljs-string {
|
||
color: #c41a16;
|
||
}
|
||
|
||
.hljs-regexp, .hljs-link {
|
||
color: #0E0EFF;
|
||
}
|
||
|
||
.hljs-title, .hljs-symbol, .hljs-bullet, .hljs-number {
|
||
color: #1c00cf;
|
||
}
|
||
|
||
.hljs-section, .hljs-meta {
|
||
color: #643820;
|
||
}
|
||
|
||
.hljs-title.class_, .hljs-class .hljs-title, .hljs-type, .hljs-built_in, .hljs-params {
|
||
color: #5c2699;
|
||
}
|
||
|
||
.hljs-attr {
|
||
color: #836C28;
|
||
}
|
||
|
||
.hljs-subst {
|
||
color: #000;
|
||
}
|
||
|
||
.hljs-formula {
|
||
background-color: #eee;
|
||
font-style: italic;
|
||
}
|
||
|
||
.hljs-addition {
|
||
background-color: #baeeba;
|
||
}
|
||
|
||
.hljs-deletion {
|
||
background-color: #ffc8bd;
|
||
}
|
||
|
||
.hljs-selector-id, .hljs-selector-class {
|
||
color: #9b703f;
|
||
}
|
||
|
||
.hljs-doctag, .hljs-strong {
|
||
font-weight: bold;
|
||
}
|
||
|
||
.hljs-emphasis {
|
||
font-style: italic;
|
||
}
|
||
</style>
|
||
<style type="text/css" data-fela-rehydration="590" data-fela-type="KEYFRAME">
|
||
@-webkit-keyframes k1 {
|
||
0% {
|
||
opacity: 0.8
|
||
}
|
||
|
||
50% {
|
||
opacity: 0.5
|
||
}
|
||
|
||
100% {
|
||
opacity: 0.8
|
||
}
|
||
}
|
||
|
||
@-moz-keyframes k1 {
|
||
0% {
|
||
opacity: 0.8
|
||
}
|
||
|
||
50% {
|
||
opacity: 0.5
|
||
}
|
||
|
||
100% {
|
||
opacity: 0.8
|
||
}
|
||
}
|
||
|
||
@keyframes k1 {
|
||
0% {
|
||
opacity: 0.8
|
||
}
|
||
|
||
50% {
|
||
opacity: 0.5
|
||
}
|
||
|
||
100% {
|
||
opacity: 0.8
|
||
}
|
||
}
|
||
</style>
|
||
<style type="text/css" data-fela-rehydration="590" data-fela-type="RULE">
|
||
.a {
|
||
font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif
|
||
}
|
||
|
||
.b {
|
||
font-weight: 400
|
||
}
|
||
|
||
.c {
|
||
background-color: rgba(255, 255, 255, 1)
|
||
}
|
||
|
||
.d {
|
||
display: none
|
||
}
|
||
|
||
.e {
|
||
display: block
|
||
}
|
||
|
||
.f {
|
||
position: sticky
|
||
}
|
||
|
||
.g {
|
||
top: 0
|
||
}
|
||
|
||
.h {
|
||
z-index: 500
|
||
}
|
||
|
||
.i {
|
||
padding: 0 24px
|
||
}
|
||
|
||
.j {
|
||
align-items: center
|
||
}
|
||
|
||
.k {
|
||
border-bottom: solid 1px #F2F2F2
|
||
}
|
||
|
||
.t {
|
||
height: 41px
|
||
}
|
||
|
||
.u {
|
||
line-height: 20px
|
||
}
|
||
|
||
.v {
|
||
display: flex
|
||
}
|
||
|
||
.w {
|
||
gap: 24px
|
||
}
|
||
|
||
.x {
|
||
height: 57px
|
||
}
|
||
|
||
.y {
|
||
flex: 1 0 auto
|
||
}
|
||
|
||
.z {
|
||
color: inherit
|
||
}
|
||
|
||
.ab {
|
||
fill: inherit
|
||
}
|
||
|
||
.ac {
|
||
font-size: inherit
|
||
}
|
||
|
||
.ae {
|
||
border: none
|
||
}
|
||
|
||
.af {
|
||
font-family: inherit
|
||
}
|
||
|
||
.ag {
|
||
letter-spacing: inherit
|
||
}
|
||
|
||
.ah {
|
||
font-weight: inherit
|
||
}
|
||
|
||
.ai {
|
||
padding: 0
|
||
}
|
||
|
||
.aj {
|
||
margin: 0
|
||
}
|
||
|
||
.ak {
|
||
cursor: pointer
|
||
}
|
||
|
||
.al:disabled {
|
||
cursor: not-allowed
|
||
}
|
||
|
||
.am:disabled {
|
||
color: #6B6B6B
|
||
}
|
||
|
||
.an:disabled {
|
||
fill: #6B6B6B
|
||
}
|
||
|
||
.aq {
|
||
width: auto
|
||
}
|
||
|
||
.ar path {
|
||
fill: #242424
|
||
}
|
||
|
||
.as {
|
||
height: 25px
|
||
}
|
||
|
||
.at {
|
||
margin-left: 24px
|
||
}
|
||
|
||
.av {
|
||
border-radius: 20px
|
||
}
|
||
|
||
.aw {
|
||
width: 240px
|
||
}
|
||
|
||
.ax {
|
||
background: #F9F9F9
|
||
}
|
||
|
||
.ay path {
|
||
fill: #6B6B6B
|
||
}
|
||
|
||
.ba {
|
||
outline: none
|
||
}
|
||
|
||
.bb {
|
||
font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif
|
||
}
|
||
|
||
.bc {
|
||
font-size: 14px
|
||
}
|
||
|
||
.bd {
|
||
width: 100%
|
||
}
|
||
|
||
.be {
|
||
padding: 10px 20px 10px 0
|
||
}
|
||
|
||
.bf {
|
||
background-color: transparent
|
||
}
|
||
|
||
.bg {
|
||
color: #242424
|
||
}
|
||
|
||
.bh::placeholder {
|
||
color: #6B6B6B
|
||
}
|
||
|
||
.bi {
|
||
display: inline-block
|
||
}
|
||
|
||
.bj {
|
||
margin-left: 12px
|
||
}
|
||
|
||
.bk {
|
||
margin-right: 12px
|
||
}
|
||
|
||
.bl {
|
||
border-radius: 4px
|
||
}
|
||
|
||
.bm {
|
||
height: 24px
|
||
}
|
||
|
||
.bs {
|
||
background-color: #F9F9F9
|
||
}
|
||
|
||
.bu {
|
||
border-radius: 50%
|
||
}
|
||
|
||
.bv {
|
||
height: 32px
|
||
}
|
||
|
||
.bw {
|
||
width: 32px
|
||
}
|
||
|
||
.bx {
|
||
flex: 0 0 auto
|
||
}
|
||
|
||
.ca {
|
||
flex: 1 1 auto
|
||
}
|
||
|
||
.cf {
|
||
justify-content: center
|
||
}
|
||
|
||
.cl {
|
||
max-width: 680px
|
||
}
|
||
|
||
.cm {
|
||
min-width: 0
|
||
}
|
||
|
||
.cn {
|
||
animation: k1 1.2s ease-in-out infinite
|
||
}
|
||
|
||
.co {
|
||
height: 100vh
|
||
}
|
||
|
||
.cp {
|
||
margin-bottom: 16px
|
||
}
|
||
|
||
.cq {
|
||
margin-top: 48px
|
||
}
|
||
|
||
.cr {
|
||
align-items: flex-start
|
||
}
|
||
|
||
.cs {
|
||
flex-direction: column
|
||
}
|
||
|
||
.ct {
|
||
justify-content: space-between
|
||
}
|
||
|
||
.cu {
|
||
margin-bottom: 24px
|
||
}
|
||
|
||
.da {
|
||
width: 80%
|
||
}
|
||
|
||
.db {
|
||
background-color: #F2F2F2
|
||
}
|
||
|
||
.dh {
|
||
height: 44px
|
||
}
|
||
|
||
.di {
|
||
width: 44px
|
||
}
|
||
|
||
.dj {
|
||
margin: auto 0
|
||
}
|
||
|
||
.dk {
|
||
margin-bottom: 4px
|
||
}
|
||
|
||
.dl {
|
||
height: 16px
|
||
}
|
||
|
||
.dm {
|
||
width: 120px
|
||
}
|
||
|
||
.dn {
|
||
width: 80px
|
||
}
|
||
|
||
.dt {
|
||
margin-bottom: 8px
|
||
}
|
||
|
||
.du {
|
||
width: 96%
|
||
}
|
||
|
||
.dv {
|
||
width: 98%
|
||
}
|
||
|
||
.dw {
|
||
width: 81%
|
||
}
|
||
|
||
.dx {
|
||
margin-left: 8px
|
||
}
|
||
|
||
.dy {
|
||
color: #6B6B6B
|
||
}
|
||
|
||
.dz {
|
||
font-size: 13px
|
||
}
|
||
|
||
.ea {
|
||
height: 100%
|
||
}
|
||
|
||
.et {
|
||
color: #FFFFFF
|
||
}
|
||
|
||
.eu {
|
||
fill: #FFFFFF
|
||
}
|
||
|
||
.ev {
|
||
background: #1A8917
|
||
}
|
||
|
||
.ew {
|
||
border-color: #1A8917
|
||
}
|
||
|
||
.fa:disabled {
|
||
cursor: inherit !important
|
||
}
|
||
|
||
.fb:disabled {
|
||
opacity: 0.3
|
||
}
|
||
|
||
.fc:disabled:hover {
|
||
background: #1A8917
|
||
}
|
||
|
||
.fd:disabled:hover {
|
||
border-color: #1A8917
|
||
}
|
||
|
||
.fe {
|
||
border-radius: 99em
|
||
}
|
||
|
||
.ff {
|
||
border-width: 1px
|
||
}
|
||
|
||
.fg {
|
||
border-style: solid
|
||
}
|
||
|
||
.fh {
|
||
box-sizing: border-box
|
||
}
|
||
|
||
.fi {
|
||
text-decoration: none
|
||
}
|
||
|
||
.fj {
|
||
text-align: center
|
||
}
|
||
|
||
.fk {
|
||
margin-left: 16px
|
||
}
|
||
|
||
.fl {
|
||
border: inherit
|
||
}
|
||
|
||
.fm {
|
||
gap: 4px
|
||
}
|
||
|
||
.fn {
|
||
padding: 6px 12px
|
||
}
|
||
|
||
.fo {
|
||
white-space: nowrap
|
||
}
|
||
|
||
.fp {
|
||
background-color: #242424
|
||
}
|
||
|
||
.fq {
|
||
width: 24px
|
||
}
|
||
|
||
.fr {
|
||
flex-shrink: 0
|
||
}
|
||
|
||
.fs path {
|
||
fill: #FFFFFF
|
||
}
|
||
|
||
.fv {
|
||
position: relative
|
||
}
|
||
|
||
.fw {
|
||
fill: #6B6B6B
|
||
}
|
||
|
||
.fx {
|
||
gap: 8px
|
||
}
|
||
|
||
.ga {
|
||
position: absolute
|
||
}
|
||
|
||
.gb {
|
||
width: 1px
|
||
}
|
||
|
||
.gc {
|
||
height: 1px
|
||
}
|
||
|
||
.gd {
|
||
margin: -1px
|
||
}
|
||
|
||
.ge {
|
||
overflow: hidden
|
||
}
|
||
|
||
.gf {
|
||
clip: rect(0, 0, 0, 0)
|
||
}
|
||
|
||
.gg {
|
||
border-width: 0
|
||
}
|
||
|
||
.gh {
|
||
margin-right: 32px
|
||
}
|
||
|
||
.gi {
|
||
background: transparent
|
||
}
|
||
|
||
.gj svg {
|
||
margin-left: 4px
|
||
}
|
||
|
||
.gk svg {
|
||
fill: #6B6B6B
|
||
}
|
||
|
||
.gm {
|
||
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.05)
|
||
}
|
||
|
||
.gt {
|
||
margin: 0 24px
|
||
}
|
||
|
||
.gx {
|
||
background: rgba(255, 255, 255, 1)
|
||
}
|
||
|
||
.gy {
|
||
border: 1px solid #F2F2F2
|
||
}
|
||
|
||
.gz {
|
||
box-shadow: 0 1px 4px #F2F2F2
|
||
}
|
||
|
||
.ha {
|
||
max-height: 100vh
|
||
}
|
||
|
||
.hb {
|
||
overflow-y: auto
|
||
}
|
||
|
||
.hc {
|
||
left: 0
|
||
}
|
||
|
||
.hd {
|
||
top: calc(100vh + 100px)
|
||
}
|
||
|
||
.he {
|
||
bottom: calc(100vh + 100px)
|
||
}
|
||
|
||
.hf {
|
||
width: 10px
|
||
}
|
||
|
||
.hg {
|
||
pointer-events: none
|
||
}
|
||
|
||
.hh {
|
||
word-break: break-word
|
||
}
|
||
|
||
.hi {
|
||
word-wrap: break-word
|
||
}
|
||
|
||
.hj:after {
|
||
display: block
|
||
}
|
||
|
||
.hk:after {
|
||
content: ""
|
||
}
|
||
|
||
.hl:after {
|
||
clear: both
|
||
}
|
||
|
||
.hm {
|
||
line-height: 1.23
|
||
}
|
||
|
||
.hn {
|
||
letter-spacing: 0
|
||
}
|
||
|
||
.ho {
|
||
font-style: normal
|
||
}
|
||
|
||
.hp {
|
||
font-weight: 700
|
||
}
|
||
|
||
.iz {
|
||
gap: 12px
|
||
}
|
||
|
||
.ja {
|
||
align-items: baseline
|
||
}
|
||
|
||
.jb {
|
||
width: 36px
|
||
}
|
||
|
||
.jc {
|
||
height: 36px
|
||
}
|
||
|
||
.jd {
|
||
border: 2px solid rgba(255, 255, 255, 1)
|
||
}
|
||
|
||
.je {
|
||
z-index: 0
|
||
}
|
||
|
||
.jf {
|
||
box-shadow: none
|
||
}
|
||
|
||
.jg {
|
||
border: 1px solid rgba(0, 0, 0, 0.05)
|
||
}
|
||
|
||
.jh {
|
||
margin-bottom: 2px
|
||
}
|
||
|
||
.ji {
|
||
flex-wrap: nowrap
|
||
}
|
||
|
||
.jk {
|
||
width: 12px
|
||
}
|
||
|
||
.jl {
|
||
flex-wrap: wrap
|
||
}
|
||
|
||
.jm {
|
||
padding-left: 8px
|
||
}
|
||
|
||
.jn {
|
||
padding-right: 8px
|
||
}
|
||
|
||
.ko> * {
|
||
flex-shrink: 0
|
||
}
|
||
|
||
.kp {
|
||
overflow-x: scroll
|
||
}
|
||
|
||
.kq::-webkit-scrollbar {
|
||
display: none
|
||
}
|
||
|
||
.kr {
|
||
scrollbar-width: none
|
||
}
|
||
|
||
.ks {
|
||
-ms-overflow-style: none
|
||
}
|
||
|
||
.kt {
|
||
max-width: 74px
|
||
}
|
||
|
||
.ku {
|
||
flex-direction: row
|
||
}
|
||
|
||
.kv {
|
||
z-index: 2
|
||
}
|
||
|
||
.kw {
|
||
margin-right: 4px
|
||
}
|
||
|
||
.kz {
|
||
-webkit-user-select: none
|
||
}
|
||
|
||
.la {
|
||
border: 0
|
||
}
|
||
|
||
.lb {
|
||
fill: rgba(117, 117, 117, 1)
|
||
}
|
||
|
||
.le {
|
||
outline: 0
|
||
}
|
||
|
||
.lf {
|
||
user-select: none
|
||
}
|
||
|
||
.lg> svg {
|
||
pointer-events: none
|
||
}
|
||
|
||
.lp {
|
||
cursor: progress
|
||
}
|
||
|
||
.lq {
|
||
margin-left: 32px
|
||
}
|
||
|
||
.lr {
|
||
opacity: 1
|
||
}
|
||
|
||
.ls {
|
||
padding: 4px 0
|
||
}
|
||
|
||
.lv {
|
||
margin-top: 0px
|
||
}
|
||
|
||
.lw {
|
||
width: 16px
|
||
}
|
||
|
||
.ly {
|
||
display: inline-flex
|
||
}
|
||
|
||
.me {
|
||
max-width: 100%
|
||
}
|
||
|
||
.mf {
|
||
padding: 8px 2px
|
||
}
|
||
|
||
.mg svg {
|
||
color: #6B6B6B
|
||
}
|
||
|
||
.mx {
|
||
line-height: 1.58
|
||
}
|
||
|
||
.my {
|
||
letter-spacing: -0.004em
|
||
}
|
||
|
||
.mz {
|
||
font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif
|
||
}
|
||
|
||
.nu {
|
||
margin-bottom: -0.46em
|
||
}
|
||
|
||
.nv {
|
||
text-decoration: underline
|
||
}
|
||
|
||
.nw {
|
||
box-shadow: inset 3px 0 0 0 #242424
|
||
}
|
||
|
||
.nx {
|
||
padding-left: 23px
|
||
}
|
||
|
||
.ny {
|
||
margin-left: -20px
|
||
}
|
||
|
||
.nz {
|
||
font-style: italic
|
||
}
|
||
|
||
.oa {
|
||
list-style-type: decimal
|
||
}
|
||
|
||
.ob {
|
||
margin-left: 30px
|
||
}
|
||
|
||
.oc {
|
||
padding-left: 0px
|
||
}
|
||
|
||
.oi {
|
||
line-height: 1.12
|
||
}
|
||
|
||
.oj {
|
||
letter-spacing: -0.022em
|
||
}
|
||
|
||
.ok {
|
||
font-weight: 600
|
||
}
|
||
|
||
.pf {
|
||
margin-bottom: -0.28em
|
||
}
|
||
|
||
.pq {
|
||
overflow-x: auto
|
||
}
|
||
|
||
.pr {
|
||
font-family: source-code-pro, Menlo, Monaco, "Courier New", Courier, monospace
|
||
}
|
||
|
||
.ps {
|
||
padding: 32px
|
||
}
|
||
|
||
.pt {
|
||
border: 1px solid #E5E5E5
|
||
}
|
||
|
||
.pu {
|
||
line-height: 1.4
|
||
}
|
||
|
||
.pv {
|
||
margin-top: -0.2em
|
||
}
|
||
|
||
.pw {
|
||
margin-bottom: -0.2em
|
||
}
|
||
|
||
.px {
|
||
white-space: pre
|
||
}
|
||
|
||
.py {
|
||
min-width: fit-content
|
||
}
|
||
|
||
.pz {
|
||
margin-left: auto
|
||
}
|
||
|
||
.qa {
|
||
margin-right: auto
|
||
}
|
||
|
||
.qb {
|
||
max-width: 1298px
|
||
}
|
||
|
||
.qc {
|
||
clear: both
|
||
}
|
||
|
||
.qe {
|
||
cursor: zoom-in
|
||
}
|
||
|
||
.qf {
|
||
z-index: auto
|
||
}
|
||
|
||
.qh {
|
||
height: auto
|
||
}
|
||
|
||
.qi {
|
||
max-width: 1920px
|
||
}
|
||
|
||
.qj {
|
||
margin-bottom: 26px
|
||
}
|
||
|
||
.qk {
|
||
margin-top: 6px
|
||
}
|
||
|
||
.ql {
|
||
margin-top: 8px
|
||
}
|
||
|
||
.qm {
|
||
margin-right: 8px
|
||
}
|
||
|
||
.qn {
|
||
padding: 8px 16px
|
||
}
|
||
|
||
.qo {
|
||
border-radius: 100px
|
||
}
|
||
|
||
.qp {
|
||
transition: background 300ms ease
|
||
}
|
||
|
||
.qr {
|
||
border-top: none
|
||
}
|
||
|
||
.qs {
|
||
margin-bottom: 50px
|
||
}
|
||
|
||
.qt {
|
||
height: 52px
|
||
}
|
||
|
||
.qu {
|
||
max-height: 52px
|
||
}
|
||
|
||
.qv {
|
||
box-sizing: content-box
|
||
}
|
||
|
||
.qw {
|
||
position: static
|
||
}
|
||
|
||
.qx {
|
||
z-index: 1
|
||
}
|
||
|
||
.qz {
|
||
max-width: 155px
|
||
}
|
||
|
||
.ri {
|
||
margin: 0 32px
|
||
}
|
||
|
||
.rj {
|
||
margin-right: 20px
|
||
}
|
||
|
||
.rk {
|
||
margin-bottom: 64px
|
||
}
|
||
|
||
.rx {
|
||
height: 48px
|
||
}
|
||
|
||
.ry {
|
||
width: 48px
|
||
}
|
||
|
||
.sa {
|
||
height: 64px
|
||
}
|
||
|
||
.sb {
|
||
width: 64px
|
||
}
|
||
|
||
.sc {
|
||
align-self: flex-end
|
||
}
|
||
|
||
.si {
|
||
padding-right: 4px
|
||
}
|
||
|
||
.sj {
|
||
font-weight: 500
|
||
}
|
||
|
||
.sw {
|
||
white-space: pre-wrap
|
||
}
|
||
|
||
.sx {
|
||
margin: 0 8px
|
||
}
|
||
|
||
.sy {
|
||
margin-top: 16px
|
||
}
|
||
|
||
.sz {
|
||
margin-bottom: 54px
|
||
}
|
||
|
||
.ta {
|
||
height: 0px
|
||
}
|
||
|
||
.tb {
|
||
gap: 18px
|
||
}
|
||
|
||
.tc {
|
||
fill: rgba(61, 61, 61, 1)
|
||
}
|
||
|
||
.tn {
|
||
height: 20px
|
||
}
|
||
|
||
.to {
|
||
width: 220px
|
||
}
|
||
|
||
.tp {
|
||
width: 180px
|
||
}
|
||
|
||
.tq {
|
||
margin: 24px 0
|
||
}
|
||
|
||
.tr {
|
||
gap: 16px
|
||
}
|
||
|
||
.ts {
|
||
height: 148px
|
||
}
|
||
|
||
.tt {
|
||
margin-bottom: 32px
|
||
}
|
||
|
||
.tz {
|
||
align-items: stretch
|
||
}
|
||
|
||
.vh {
|
||
flex-grow: 0
|
||
}
|
||
|
||
.vi {
|
||
height: 200px
|
||
}
|
||
|
||
.vj {
|
||
width: 158px
|
||
}
|
||
|
||
.vk {
|
||
width: 288px
|
||
}
|
||
|
||
.vl {
|
||
width: 296px
|
||
}
|
||
|
||
.vm {
|
||
margin-bottom: 56px
|
||
}
|
||
|
||
.vn {
|
||
width: 224px
|
||
}
|
||
|
||
.vo {
|
||
border-bottom: solid 1px #E5E5E5
|
||
}
|
||
|
||
.vp {
|
||
margin-top: 72px
|
||
}
|
||
|
||
.vq {
|
||
padding: 24px 0
|
||
}
|
||
|
||
.vr {
|
||
margin-bottom: 0px
|
||
}
|
||
|
||
.vs {
|
||
margin-right: 16px
|
||
}
|
||
|
||
.ao:hover:not(:disabled) {
|
||
color: rgba(25, 25, 25, 1)
|
||
}
|
||
|
||
.ap:hover:not(:disabled) {
|
||
fill: rgba(25, 25, 25, 1)
|
||
}
|
||
|
||
.ex:hover {
|
||
background: #156D12
|
||
}
|
||
|
||
.ey:hover {
|
||
border-color: #156D12
|
||
}
|
||
|
||
.ez:hover {
|
||
cursor: pointer
|
||
}
|
||
|
||
.fy:hover {
|
||
color: #242424
|
||
}
|
||
|
||
.fz:hover {
|
||
fill: #242424
|
||
}
|
||
|
||
.gl:hover svg {
|
||
fill: #242424
|
||
}
|
||
|
||
.gn:hover {
|
||
background-color: rgba(0, 0, 0, 0.1)
|
||
}
|
||
|
||
.jj:hover {
|
||
text-decoration: underline
|
||
}
|
||
|
||
.ld:hover {
|
||
fill: rgba(8, 8, 8, 1)
|
||
}
|
||
|
||
.lt:hover {
|
||
fill: #000000
|
||
}
|
||
|
||
.lu:hover p {
|
||
color: #000000
|
||
}
|
||
|
||
.lx:hover {
|
||
color: #000000
|
||
}
|
||
|
||
.mh:hover svg {
|
||
color: #000000
|
||
}
|
||
|
||
.qq:hover {
|
||
background-color: #F2F2F2
|
||
}
|
||
|
||
.rz:hover {
|
||
background-color: none
|
||
}
|
||
|
||
.td:hover {
|
||
fill: rgba(25, 25, 25, 1)
|
||
}
|
||
|
||
.az:focus-within path {
|
||
fill: #242424
|
||
}
|
||
|
||
.lc:focus {
|
||
fill: rgba(8, 8, 8, 1)
|
||
}
|
||
|
||
.mi:focus svg {
|
||
color: #000000
|
||
}
|
||
|
||
.qg:focus {
|
||
transform: scale(1.01)
|
||
}
|
||
|
||
.lh:active {
|
||
border-style: none
|
||
}
|
||
</style>
|
||
<style type="text/css" data-fela-rehydration="590" data-fela-type="RULE" media="all and (min-width: 1080px)">
|
||
.s {
|
||
display: none
|
||
}
|
||
|
||
.br {
|
||
width: 64px
|
||
}
|
||
|
||
.bz {
|
||
display: block
|
||
}
|
||
|
||
.ck {
|
||
margin: 0 64px
|
||
}
|
||
|
||
.cz {
|
||
height: 48px
|
||
}
|
||
|
||
.dg {
|
||
margin-bottom: 52px
|
||
}
|
||
|
||
.ds {
|
||
margin-bottom: 48px
|
||
}
|
||
|
||
.ej {
|
||
font-size: 14px
|
||
}
|
||
|
||
.ek {
|
||
line-height: 20px
|
||
}
|
||
|
||
.er {
|
||
font-size: 13px
|
||
}
|
||
|
||
.es {
|
||
padding: 5px 12px
|
||
}
|
||
|
||
.fu {
|
||
display: flex
|
||
}
|
||
|
||
.gs {
|
||
margin-bottom: 50px
|
||
}
|
||
|
||
.gw {
|
||
max-width: 680px
|
||
}
|
||
|
||
.ik {
|
||
font-size: 42px
|
||
}
|
||
|
||
.il {
|
||
margin-top: 1.19em
|
||
}
|
||
|
||
.im {
|
||
margin-bottom: 32px
|
||
}
|
||
|
||
.in {
|
||
line-height: 52px
|
||
}
|
||
|
||
.io {
|
||
letter-spacing: -0.011em
|
||
}
|
||
|
||
.ix {
|
||
align-items: center
|
||
}
|
||
|
||
.iy {
|
||
flex-direction: row
|
||
}
|
||
|
||
.ka {
|
||
border-top: solid 1px #F2F2F2
|
||
}
|
||
|
||
.kb {
|
||
border-bottom: solid 1px #F2F2F2
|
||
}
|
||
|
||
.kc {
|
||
margin: 32px 0 0
|
||
}
|
||
|
||
.kd {
|
||
padding: 3px 8px
|
||
}
|
||
|
||
.km> * {
|
||
margin-right: 24px
|
||
}
|
||
|
||
.kn> :last-child {
|
||
margin-right: 0
|
||
}
|
||
|
||
.lo {
|
||
margin-top: 0px
|
||
}
|
||
|
||
.md {
|
||
margin: 0
|
||
}
|
||
|
||
.nq {
|
||
font-size: 20px
|
||
}
|
||
|
||
.nr {
|
||
margin-top: 2.14em
|
||
}
|
||
|
||
.ns {
|
||
line-height: 32px
|
||
}
|
||
|
||
.nt {
|
||
letter-spacing: -0.003em
|
||
}
|
||
|
||
.oh {
|
||
margin-top: 1.14em
|
||
}
|
||
|
||
.pb {
|
||
font-size: 24px
|
||
}
|
||
|
||
.pc {
|
||
margin-top: 1.95em
|
||
}
|
||
|
||
.pd {
|
||
line-height: 30px
|
||
}
|
||
|
||
.pe {
|
||
letter-spacing: -0.016em
|
||
}
|
||
|
||
.pk {
|
||
margin-top: 0.94em
|
||
}
|
||
|
||
.pp {
|
||
margin-top: 56px
|
||
}
|
||
|
||
.rh {
|
||
display: inline-block
|
||
}
|
||
|
||
.rn {
|
||
margin-bottom: 0
|
||
}
|
||
|
||
.ro {
|
||
margin-right: 20px
|
||
}
|
||
|
||
.sd {
|
||
max-width: 500px
|
||
}
|
||
|
||
.su {
|
||
line-height: 24px
|
||
}
|
||
|
||
.sv {
|
||
letter-spacing: 0
|
||
}
|
||
|
||
.ti {
|
||
margin: 40px 0 0
|
||
}
|
||
|
||
.ty {
|
||
padding-top: 72px
|
||
}
|
||
|
||
.um {
|
||
width: calc(100% + 32px)
|
||
}
|
||
|
||
.un {
|
||
margin-left: -16px
|
||
}
|
||
|
||
.uo {
|
||
margin-right: -16px
|
||
}
|
||
|
||
.vd {
|
||
padding-left: 16px
|
||
}
|
||
|
||
.ve {
|
||
padding-right: 16px
|
||
}
|
||
|
||
.vf {
|
||
flex-basis: 50%
|
||
}
|
||
|
||
.vg {
|
||
max-width: 50%
|
||
}
|
||
</style>
|
||
<style type="text/css" data-fela-rehydration="590" data-fela-type="RULE" media="all and (max-width: 1079.98px)">
|
||
.ln {
|
||
margin-top: 0px
|
||
}
|
||
|
||
.rd {
|
||
display: none
|
||
}
|
||
|
||
.rg {
|
||
display: inline-block
|
||
}
|
||
</style>
|
||
<style type="text/css" data-fela-rehydration="590" data-fela-type="RULE" media="all and (max-width: 903.98px)">
|
||
.lm {
|
||
margin-top: 0px
|
||
}
|
||
|
||
.rc {
|
||
display: inline-block
|
||
}
|
||
|
||
.rf {
|
||
display: none
|
||
}
|
||
</style>
|
||
<style type="text/css" data-fela-rehydration="590" data-fela-type="RULE" media="all and (max-width: 727.98px)">
|
||
.lk {
|
||
margin-top: 0px
|
||
}
|
||
|
||
.ll {
|
||
margin-right: 0px
|
||
}
|
||
|
||
.rb {
|
||
display: inline-block
|
||
}
|
||
|
||
.re {
|
||
display: none
|
||
}
|
||
</style>
|
||
<style type="text/css" data-fela-rehydration="590" data-fela-type="RULE" media="all and (max-width: 551.98px)">
|
||
.l {
|
||
display: flex
|
||
}
|
||
|
||
.m {
|
||
justify-content: space-between
|
||
}
|
||
|
||
.au {
|
||
display: none
|
||
}
|
||
|
||
.bn {
|
||
width: 24px
|
||
}
|
||
|
||
.cb {
|
||
min-width: 100%
|
||
}
|
||
|
||
.cg {
|
||
margin: 0 24px
|
||
}
|
||
|
||
.cv {
|
||
height: 40px
|
||
}
|
||
|
||
.dc {
|
||
margin-bottom: 44px
|
||
}
|
||
|
||
.do {
|
||
margin-bottom: 32px
|
||
}
|
||
|
||
.eb {
|
||
font-size: 13px
|
||
}
|
||
|
||
.ec {
|
||
line-height: 20px
|
||
}
|
||
|
||
.el {
|
||
padding: 0px 8px 1px
|
||
}
|
||
|
||
.go {
|
||
margin-bottom: 2px
|
||
}
|
||
|
||
.hq {
|
||
font-size: 32px
|
||
}
|
||
|
||
.hr {
|
||
margin-top: 1.01em
|
||
}
|
||
|
||
.hs {
|
||
margin-bottom: 24px
|
||
}
|
||
|
||
.ht {
|
||
line-height: 38px
|
||
}
|
||
|
||
.hu {
|
||
letter-spacing: -0.014em
|
||
}
|
||
|
||
.ip {
|
||
align-items: flex-start
|
||
}
|
||
|
||
.iq {
|
||
flex-direction: column-reverse
|
||
}
|
||
|
||
.jo {
|
||
margin: 24px -24px 0
|
||
}
|
||
|
||
.jp {
|
||
padding: 0
|
||
}
|
||
|
||
.ke> * {
|
||
margin-right: 8px
|
||
}
|
||
|
||
.kf> :last-child {
|
||
margin-right: 24px
|
||
}
|
||
|
||
.kx {
|
||
margin-left: 0px
|
||
}
|
||
|
||
.li {
|
||
margin-top: 0px
|
||
}
|
||
|
||
.lj {
|
||
margin-right: 0px
|
||
}
|
||
|
||
.lz {
|
||
margin: 0
|
||
}
|
||
|
||
.mj {
|
||
border: 1px solid #F2F2F2
|
||
}
|
||
|
||
.mk {
|
||
border-radius: 99em
|
||
}
|
||
|
||
.ml {
|
||
padding: 0px 16px 0px 12px
|
||
}
|
||
|
||
.mm {
|
||
height: 38px
|
||
}
|
||
|
||
.mn {
|
||
align-items: center
|
||
}
|
||
|
||
.mp svg {
|
||
margin-right: 8px
|
||
}
|
||
|
||
.na {
|
||
font-size: 18px
|
||
}
|
||
|
||
.nb {
|
||
margin-top: 1.56em
|
||
}
|
||
|
||
.nc {
|
||
line-height: 28px
|
||
}
|
||
|
||
.nd {
|
||
letter-spacing: -0.003em
|
||
}
|
||
|
||
.od {
|
||
margin-top: 1.34em
|
||
}
|
||
|
||
.ol {
|
||
font-size: 20px
|
||
}
|
||
|
||
.om {
|
||
margin-top: 1.2em
|
||
}
|
||
|
||
.on {
|
||
line-height: 24px
|
||
}
|
||
|
||
.oo {
|
||
letter-spacing: 0
|
||
}
|
||
|
||
.pg {
|
||
margin-top: 0.67em
|
||
}
|
||
|
||
.pl {
|
||
margin-top: 40px
|
||
}
|
||
|
||
.ra {
|
||
display: inline-block
|
||
}
|
||
|
||
.rm {
|
||
flex-direction: column
|
||
}
|
||
|
||
.rv {
|
||
margin-bottom: 20px
|
||
}
|
||
|
||
.rw {
|
||
margin-right: 0
|
||
}
|
||
|
||
.sh {
|
||
max-width: 100%
|
||
}
|
||
|
||
.sk {
|
||
font-size: 24px
|
||
}
|
||
|
||
.sl {
|
||
line-height: 30px
|
||
}
|
||
|
||
.sm {
|
||
letter-spacing: -0.016em
|
||
}
|
||
|
||
.te {
|
||
margin: 32px 0 0
|
||
}
|
||
|
||
.tj {
|
||
margin-bottom: 40px
|
||
}
|
||
|
||
.tl {
|
||
margin-bottom: 30px
|
||
}
|
||
|
||
.tu {
|
||
padding-top: 48px
|
||
}
|
||
|
||
.ua {
|
||
width: calc(100% + 24px)
|
||
}
|
||
|
||
.ub {
|
||
margin-left: -12px
|
||
}
|
||
|
||
.uc {
|
||
margin-right: -12px
|
||
}
|
||
|
||
.up {
|
||
padding-left: 12px
|
||
}
|
||
|
||
.uq {
|
||
padding-right: 12px
|
||
}
|
||
|
||
.ur {
|
||
flex-basis: 100%
|
||
}
|
||
|
||
.mo:hover {
|
||
border-color: #E5E5E5
|
||
}
|
||
</style>
|
||
<style type="text/css" data-fela-rehydration="590" data-fela-type="RULE" media="all and (min-width: 904px) and (max-width: 1079.98px)">
|
||
.r {
|
||
display: none
|
||
}
|
||
|
||
.bq {
|
||
width: 64px
|
||
}
|
||
|
||
.ce {
|
||
min-width: 100%
|
||
}
|
||
|
||
.cj {
|
||
margin: 0 64px
|
||
}
|
||
|
||
.cy {
|
||
height: 48px
|
||
}
|
||
|
||
.df {
|
||
margin-bottom: 52px
|
||
}
|
||
|
||
.dr {
|
||
margin-bottom: 48px
|
||
}
|
||
|
||
.eh {
|
||
font-size: 14px
|
||
}
|
||
|
||
.ei {
|
||
line-height: 20px
|
||
}
|
||
|
||
.ep {
|
||
font-size: 13px
|
||
}
|
||
|
||
.eq {
|
||
padding: 5px 12px
|
||
}
|
||
|
||
.ft {
|
||
display: flex
|
||
}
|
||
|
||
.gr {
|
||
margin-bottom: 50px
|
||
}
|
||
|
||
.gv {
|
||
max-width: 680px
|
||
}
|
||
|
||
.if {
|
||
font-size: 42px
|
||
}
|
||
|
||
.ig {
|
||
margin-top: 1.19em
|
||
}
|
||
|
||
.ih {
|
||
margin-bottom: 32px
|
||
}
|
||
|
||
.ii {
|
||
line-height: 52px
|
||
}
|
||
|
||
.ij {
|
||
letter-spacing: -0.011em
|
||
}
|
||
|
||
.iv {
|
||
align-items: center
|
||
}
|
||
|
||
.iw {
|
||
flex-direction: row
|
||
}
|
||
|
||
.jw {
|
||
border-top: solid 1px #F2F2F2
|
||
}
|
||
|
||
.jx {
|
||
border-bottom: solid 1px #F2F2F2
|
||
}
|
||
|
||
.jy {
|
||
margin: 32px 0 0
|
||
}
|
||
|
||
.jz {
|
||
padding: 3px 8px
|
||
}
|
||
|
||
.kk> * {
|
||
margin-right: 24px
|
||
}
|
||
|
||
.kl> :last-child {
|
||
margin-right: 0
|
||
}
|
||
|
||
.mc {
|
||
margin: 0
|
||
}
|
||
|
||
.nm {
|
||
font-size: 20px
|
||
}
|
||
|
||
.nn {
|
||
margin-top: 2.14em
|
||
}
|
||
|
||
.no {
|
||
line-height: 32px
|
||
}
|
||
|
||
.np {
|
||
letter-spacing: -0.003em
|
||
}
|
||
|
||
.og {
|
||
margin-top: 1.14em
|
||
}
|
||
|
||
.ox {
|
||
font-size: 24px
|
||
}
|
||
|
||
.oy {
|
||
margin-top: 1.95em
|
||
}
|
||
|
||
.oz {
|
||
line-height: 30px
|
||
}
|
||
|
||
.pa {
|
||
letter-spacing: -0.016em
|
||
}
|
||
|
||
.pj {
|
||
margin-top: 0.94em
|
||
}
|
||
|
||
.po {
|
||
margin-top: 56px
|
||
}
|
||
|
||
.rp {
|
||
margin-bottom: 0
|
||
}
|
||
|
||
.rq {
|
||
margin-right: 20px
|
||
}
|
||
|
||
.se {
|
||
max-width: 500px
|
||
}
|
||
|
||
.ss {
|
||
line-height: 24px
|
||
}
|
||
|
||
.st {
|
||
letter-spacing: 0
|
||
}
|
||
|
||
.th {
|
||
margin: 40px 0 0
|
||
}
|
||
|
||
.tx {
|
||
padding-top: 72px
|
||
}
|
||
|
||
.uj {
|
||
width: calc(100% + 32px)
|
||
}
|
||
|
||
.uk {
|
||
margin-left: -16px
|
||
}
|
||
|
||
.ul {
|
||
margin-right: -16px
|
||
}
|
||
|
||
.uz {
|
||
padding-left: 16px
|
||
}
|
||
|
||
.va {
|
||
padding-right: 16px
|
||
}
|
||
|
||
.vb {
|
||
flex-basis: 50%
|
||
}
|
||
|
||
.vc {
|
||
max-width: 50%
|
||
}
|
||
</style>
|
||
<style type="text/css" data-fela-rehydration="590" data-fela-type="RULE" media="all and (min-width: 728px) and (max-width: 903.98px)">
|
||
.p {
|
||
display: flex
|
||
}
|
||
|
||
.q {
|
||
justify-content: space-between
|
||
}
|
||
|
||
.bp {
|
||
width: 64px
|
||
}
|
||
|
||
.by {
|
||
display: none
|
||
}
|
||
|
||
.cd {
|
||
min-width: 100%
|
||
}
|
||
|
||
.ci {
|
||
margin: 0 48px
|
||
}
|
||
|
||
.cx {
|
||
height: 48px
|
||
}
|
||
|
||
.de {
|
||
margin-bottom: 52px
|
||
}
|
||
|
||
.dq {
|
||
margin-bottom: 48px
|
||
}
|
||
|
||
.ef {
|
||
font-size: 13px
|
||
}
|
||
|
||
.eg {
|
||
line-height: 20px
|
||
}
|
||
|
||
.eo {
|
||
padding: 0px 8px 1px
|
||
}
|
||
|
||
.gq {
|
||
margin-bottom: 50px
|
||
}
|
||
|
||
.gu {
|
||
max-width: 680px
|
||
}
|
||
|
||
.ia {
|
||
font-size: 42px
|
||
}
|
||
|
||
.ib {
|
||
margin-top: 1.19em
|
||
}
|
||
|
||
.ic {
|
||
margin-bottom: 32px
|
||
}
|
||
|
||
.id {
|
||
line-height: 52px
|
||
}
|
||
|
||
.ie {
|
||
letter-spacing: -0.011em
|
||
}
|
||
|
||
.it {
|
||
align-items: center
|
||
}
|
||
|
||
.iu {
|
||
flex-direction: row
|
||
}
|
||
|
||
.js {
|
||
border-top: solid 1px #F2F2F2
|
||
}
|
||
|
||
.jt {
|
||
border-bottom: solid 1px #F2F2F2
|
||
}
|
||
|
||
.ju {
|
||
margin: 32px 0 0
|
||
}
|
||
|
||
.jv {
|
||
padding: 3px 8px
|
||
}
|
||
|
||
.ki> * {
|
||
margin-right: 24px
|
||
}
|
||
|
||
.kj> :last-child {
|
||
margin-right: 0
|
||
}
|
||
|
||
.mb {
|
||
margin: 0
|
||
}
|
||
|
||
.ni {
|
||
font-size: 20px
|
||
}
|
||
|
||
.nj {
|
||
margin-top: 2.14em
|
||
}
|
||
|
||
.nk {
|
||
line-height: 32px
|
||
}
|
||
|
||
.nl {
|
||
letter-spacing: -0.003em
|
||
}
|
||
|
||
.of {
|
||
margin-top: 1.14em
|
||
}
|
||
|
||
.ot {
|
||
font-size: 24px
|
||
}
|
||
|
||
.ou {
|
||
margin-top: 1.95em
|
||
}
|
||
|
||
.ov {
|
||
line-height: 30px
|
||
}
|
||
|
||
.ow {
|
||
letter-spacing: -0.016em
|
||
}
|
||
|
||
.pi {
|
||
margin-top: 0.94em
|
||
}
|
||
|
||
.pn {
|
||
margin-top: 56px
|
||
}
|
||
|
||
.rr {
|
||
margin-bottom: 0
|
||
}
|
||
|
||
.rs {
|
||
margin-right: 20px
|
||
}
|
||
|
||
.sf {
|
||
max-width: 500px
|
||
}
|
||
|
||
.sq {
|
||
line-height: 24px
|
||
}
|
||
|
||
.sr {
|
||
letter-spacing: 0
|
||
}
|
||
|
||
.tg {
|
||
margin: 40px 0 0
|
||
}
|
||
|
||
.tw {
|
||
padding-top: 72px
|
||
}
|
||
|
||
.ug {
|
||
width: calc(100% + 28px)
|
||
}
|
||
|
||
.uh {
|
||
margin-left: -14px
|
||
}
|
||
|
||
.ui {
|
||
margin-right: -14px
|
||
}
|
||
|
||
.uv {
|
||
padding-left: 14px
|
||
}
|
||
|
||
.uw {
|
||
padding-right: 14px
|
||
}
|
||
|
||
.ux {
|
||
flex-basis: 50%
|
||
}
|
||
|
||
.uy {
|
||
max-width: 50%
|
||
}
|
||
</style>
|
||
<style type="text/css" data-fela-rehydration="590" data-fela-type="RULE" media="all and (min-width: 552px) and (max-width: 727.98px)">
|
||
.n {
|
||
display: flex
|
||
}
|
||
|
||
.o {
|
||
justify-content: space-between
|
||
}
|
||
|
||
.bo {
|
||
width: 24px
|
||
}
|
||
|
||
.bt {
|
||
display: none
|
||
}
|
||
|
||
.cc {
|
||
min-width: 100%
|
||
}
|
||
|
||
.ch {
|
||
margin: 0 24px
|
||
}
|
||
|
||
.cw {
|
||
height: 40px
|
||
}
|
||
|
||
.dd {
|
||
margin-bottom: 44px
|
||
}
|
||
|
||
.dp {
|
||
margin-bottom: 32px
|
||
}
|
||
|
||
.ed {
|
||
font-size: 13px
|
||
}
|
||
|
||
.ee {
|
||
line-height: 20px
|
||
}
|
||
|
||
.em {
|
||
padding: 0px 8px 1px
|
||
}
|
||
|
||
.gp {
|
||
margin-bottom: 2px
|
||
}
|
||
|
||
.hv {
|
||
font-size: 32px
|
||
}
|
||
|
||
.hw {
|
||
margin-top: 1.01em
|
||
}
|
||
|
||
.hx {
|
||
margin-bottom: 24px
|
||
}
|
||
|
||
.hy {
|
||
line-height: 38px
|
||
}
|
||
|
||
.hz {
|
||
letter-spacing: -0.014em
|
||
}
|
||
|
||
.ir {
|
||
align-items: flex-start
|
||
}
|
||
|
||
.is {
|
||
flex-direction: column-reverse
|
||
}
|
||
|
||
.jq {
|
||
margin: 24px 0 0
|
||
}
|
||
|
||
.jr {
|
||
padding: 0
|
||
}
|
||
|
||
.kg> * {
|
||
margin-right: 8px
|
||
}
|
||
|
||
.kh> :last-child {
|
||
margin-right: 8px
|
||
}
|
||
|
||
.ky {
|
||
margin-left: 0px
|
||
}
|
||
|
||
.ma {
|
||
margin: 0
|
||
}
|
||
|
||
.mq {
|
||
border: 1px solid #F2F2F2
|
||
}
|
||
|
||
.mr {
|
||
border-radius: 99em
|
||
}
|
||
|
||
.ms {
|
||
padding: 0px 16px 0px 12px
|
||
}
|
||
|
||
.mt {
|
||
height: 38px
|
||
}
|
||
|
||
.mu {
|
||
align-items: center
|
||
}
|
||
|
||
.mw svg {
|
||
margin-right: 8px
|
||
}
|
||
|
||
.ne {
|
||
font-size: 18px
|
||
}
|
||
|
||
.nf {
|
||
margin-top: 1.56em
|
||
}
|
||
|
||
.ng {
|
||
line-height: 28px
|
||
}
|
||
|
||
.nh {
|
||
letter-spacing: -0.003em
|
||
}
|
||
|
||
.oe {
|
||
margin-top: 1.34em
|
||
}
|
||
|
||
.op {
|
||
font-size: 20px
|
||
}
|
||
|
||
.oq {
|
||
margin-top: 1.2em
|
||
}
|
||
|
||
.or {
|
||
line-height: 24px
|
||
}
|
||
|
||
.os {
|
||
letter-spacing: 0
|
||
}
|
||
|
||
.ph {
|
||
margin-top: 0.67em
|
||
}
|
||
|
||
.pm {
|
||
margin-top: 40px
|
||
}
|
||
|
||
.rl {
|
||
flex-direction: column
|
||
}
|
||
|
||
.rt {
|
||
margin-bottom: 20px
|
||
}
|
||
|
||
.ru {
|
||
margin-right: 0
|
||
}
|
||
|
||
.sg {
|
||
max-width: 100%
|
||
}
|
||
|
||
.sn {
|
||
font-size: 24px
|
||
}
|
||
|
||
.so {
|
||
line-height: 30px
|
||
}
|
||
|
||
.sp {
|
||
letter-spacing: -0.016em
|
||
}
|
||
|
||
.tf {
|
||
margin: 32px 0 0
|
||
}
|
||
|
||
.tk {
|
||
margin-bottom: 40px
|
||
}
|
||
|
||
.tm {
|
||
margin-bottom: 30px
|
||
}
|
||
|
||
.tv {
|
||
padding-top: 48px
|
||
}
|
||
|
||
.ud {
|
||
width: calc(100% + 24px)
|
||
}
|
||
|
||
.ue {
|
||
margin-left: -12px
|
||
}
|
||
|
||
.uf {
|
||
margin-right: -12px
|
||
}
|
||
|
||
.us {
|
||
padding-left: 12px
|
||
}
|
||
|
||
.ut {
|
||
padding-right: 12px
|
||
}
|
||
|
||
.uu {
|
||
flex-basis: 100%
|
||
}
|
||
|
||
.mv:hover {
|
||
border-color: #E5E5E5
|
||
}
|
||
</style>
|
||
<style type="text/css" data-fela-rehydration="590" data-fela-type="RULE" media="print">
|
||
.qy {
|
||
display: none
|
||
}
|
||
</style>
|
||
<style type="text/css" data-fela-rehydration="590" data-fela-type="RULE" media="(prefers-reduced-motion: no-preference)">
|
||
.qd {
|
||
transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1)
|
||
}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<div id="root">
|
||
<div class="a b c">
|
||
<a href="/sitemap/sitemap.xml" class="d">Sitemap</a>
|
||
<script>
|
||
document.domain = document.domain;
|
||
</script>
|
||
<div class="e c">
|
||
<div class="e f g h c">
|
||
<div class="i j k l m n o p q r s t u">
|
||
<a class="dy ab dz bb ag b ai aj ak al am an ao ap l n p r s j ea u" href="https://play.google.com/store/apps/details?id=com.medium.reader&referrer=utm_source%3DmobileNavBar&source=post_page---top_nav_layout_nav-----------------------------------------" rel="noopener follow">
|
||
Open in app
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" fill="none" viewBox="0 0 10 10" class="dx">
|
||
<path fill="currentColor" d="M.985 8.485a.375.375 0 1 0 .53.53zM8.75 1.25h.375A.375.375 0 0 0 8.75.875zM8.375 6.5a.375.375 0 1 0 .75 0zM3.5.875a.375.375 0 1 0 0 .75zm-1.985 8.14 7.5-7.5-.53-.53-7.5 7.5zm6.86-7.765V6.5h.75V1.25zM3.5 1.625h5.25v-.75H3.5z"></path>
|
||
</svg>
|
||
</a>
|
||
<div class="v j">
|
||
<p class="bb b eb ec ed ee ef eg eh ei ej ek dy">
|
||
<span data-dd-action-name="Susi presentation tracker global_nav">
|
||
<button class="bb b eb ec el ed ee em ef eg eo ep ei eq er ek es et eu ev ew ex ey ez fa fb fc fd fe ff fg fh bi fi fj" data-testid="headerSignUpButton">Sign up</button>
|
||
</span>
|
||
</p>
|
||
<div class="fk e">
|
||
<p class="bb b eb ec ed ee ef eg eh ei ej ek dy">
|
||
<span data-dd-action-name="Susi presentation tracker global_nav">
|
||
<a class="z ab ac fl af ag ah ai aj ak al am an ao ap" data-testid="headerSignInButton" rel="noopener follow" href="/m/signin?operation=login&redirect=https%3A%2F%2Fmedium.com%2F%40kunalbhardwaj598%2Fi-was-burning-through-claude-codes-weekly-limit-in-3-days-here-s-how-i-fixed-it-0344c555abda&source=post_page---top_nav_layout_nav-----------------------global_nav------------------" data-discover="true">Sign in</a>
|
||
</span>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="i j k v w x">
|
||
<div class="v j y">
|
||
<a class="z ab ac ae af ag ah ai aj ak al am an ao ap v" aria-label="Homepage" data-testid="headerMediumLogo" rel="noopener follow" href="/?source=post_page---top_nav_layout_nav-----------------------------------------" data-discover="true">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="719" height="160" fill="none" aria-labelledby="wordmark-medium-desc" viewBox="0 0 719 160" class="aq ar as">
|
||
<desc id="wordmark-medium-desc">Medium Logo</desc>
|
||
<path fill="#242424" d="m174.104 9.734.215-.047V8.02H130.39L89.6 103.89 48.81 8.021H1.472v1.666l.212.047c8.018 1.81 12.09 4.509 12.09 14.242V137.93c0 9.734-4.087 12.433-12.106 14.243l-.212.047v1.671h32.118v-1.665l-.213-.048c-8.018-1.809-12.089-4.509-12.089-14.242V30.586l52.399 123.305h2.972l53.925-126.743V140.75c-.687 7.688-4.721 10.062-11.982 11.701l-.215.05v1.652h55.948v-1.652l-.215-.05c-7.269-1.639-11.4-4.013-12.087-11.701l-.037-116.774h.037c0-9.733 4.071-12.432 12.087-14.242m25.555 75.488c.915-20.474 8.268-35.252 20.606-35.507 3.806.063 6.998 1.312 9.479 3.714 5.272 5.118 7.751 15.812 7.368 31.793zm-.553 5.77h65.573v-.275c-.186-15.656-4.721-27.834-13.466-36.196-7.559-7.227-18.751-11.203-30.507-11.203h-.263c-6.101 0-13.584 1.48-18.909 4.16-6.061 2.807-11.407 7.003-15.855 12.511-7.161 8.874-11.499 20.866-12.554 34.343q-.05.606-.092 1.212a50 50 0 0 0-.065 1.151 85.807 85.807 0 0 0-.094 5.689c.71 30.524 17.198 54.917 46.483 54.917 25.705 0 40.675-18.791 44.407-44.013l-1.886-.664c-6.557 13.556-18.334 21.771-31.738 20.769-18.297-1.369-32.314-19.922-31.042-42.395m139.722 41.359c-2.151 5.101-6.639 7.908-12.653 7.908s-11.513-4.129-15.418-11.63c-4.197-8.053-6.405-19.436-6.405-32.92 0-28.067 8.729-46.22 22.24-46.22 5.657 0 10.111 2.807 12.236 7.704zm43.499 20.008c-8.019-1.897-12.089-4.722-12.089-14.951V1.309l-48.716 14.353v1.757l.299-.024c6.72-.543 11.278.386 13.925 2.83 2.072 1.915 3.082 4.853 3.082 8.987v18.66c-4.803-3.067-10.516-4.56-17.448-4.56-14.059 0-26.909 5.92-36.176 16.672-9.66 11.205-14.767 26.518-14.767 44.278-.003 31.72 15.612 53.039 38.851 53.039 13.595 0 24.533-7.449 29.54-20.013v16.865h43.711v-1.746zM424.1 19.819c0-9.904-7.468-17.374-17.375-17.374-9.859 0-17.573 7.632-17.573 17.374s7.721 17.374 17.573 17.374c9.907 0 17.375-7.47 17.375-17.374m11.499 132.546c-8.019-1.897-12.089-4.722-12.089-14.951h-.035V43.635l-43.714 12.551v1.705l.263.024c9.458.842 12.047 4.1 12.047 15.152v81.086h43.751v-1.746zm112.013 0c-8.018-1.897-12.089-4.722-12.089-14.951V43.635l-41.621 12.137v1.71l.246.026c7.733.813 9.967 4.257 9.967 15.36v59.279c-2.578 5.102-7.415 8.131-13.274 8.336-9.503 0-14.736-6.419-14.736-18.073V43.638l-43.714 12.55v1.703l.262.024c9.459.84 12.05 4.097 12.05 15.152v50.17a56.3 56.3 0 0 0 .91 10.444l.787 3.423c3.701 13.262 13.398 20.197 28.59 20.197 12.868 0 24.147-7.966 29.115-20.43v17.311h43.714v-1.747zm169.818 1.788v-1.749l-.213-.05c-8.7-2.006-12.089-5.789-12.089-13.49v-63.79c0-19.89-11.171-31.761-29.883-31.761-13.64 0-25.141 7.882-29.569 20.16-3.517-13.01-13.639-20.16-28.606-20.16-13.146 0-23.449 6.938-27.869 18.657V43.643L545.487 55.68v1.715l.263.024c9.345.829 12.047 4.181 12.047 14.95v81.784h40.787v-1.746l-.215-.053c-6.941-1.631-9.181-4.606-9.181-12.239V66.998c1.836-4.289 5.537-9.37 12.853-9.37 9.086 0 13.692 6.296 13.692 18.697v77.828h40.797v-1.746l-.215-.053c-6.94-1.631-9.18-4.606-9.18-12.239V75.066a42 42 0 0 0-.578-7.26c1.947-4.661 5.86-10.177 13.475-10.177 9.214 0 13.691 6.114 13.691 18.696v77.828z"></path>
|
||
</svg>
|
||
</a>
|
||
<div class="at au">
|
||
<div class="v ae av aw ax j ay az">
|
||
<div class="bi" aria-describedby="searchResults" aria-labelledby="searchResults" aria-haspopup="listbox" role="listbox"></div>
|
||
<div class="bj bk v">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24">
|
||
<path fill="currentColor" fill-rule="evenodd" d="M4.092 11.06a6.95 6.95 0 1 1 13.9 0 6.95 6.95 0 0 1-13.9 0m6.95-8.05a8.05 8.05 0 1 0 5.13 14.26l3.75 3.75a.56.56 0 1 0 .79-.79l-3.73-3.73A8.05 8.05 0 0 0 11.042 3z" clip-rule="evenodd"></path>
|
||
</svg>
|
||
</div>
|
||
<input role="combobox" aria-controls="searchResults" aria-expanded="false" aria-label="search" data-testid="headerSearchInput" tabindex="0" class="ae ba bb bc u bd be bf bg bh" placeholder="Search" value=""/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="au bt by">
|
||
<button type="button" class="v j fm fn fe ae ak fo fp" aria-label="Get the Medium app">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" class="fq bm fr fs">
|
||
<g clip-path="url(#clip0_4116_10682)">
|
||
<path fill="#000" d="M9.75 3.938h-4.5A1.313 1.313 0 0 0 3.938 5.25v4.5a1.313 1.313 0 0 0 1.312 1.313h4.5a1.31 1.31 0 0 0 1.313-1.313v-4.5A1.31 1.31 0 0 0 9.75 3.938m.188 5.812a.187.187 0 0 1-.188.188h-4.5a.187.187 0 0 1-.187-.188v-4.5a.187.187 0 0 1 .187-.187h4.5a.187.187 0 0 1 .188.187zm-.188 3.188h-4.5a1.313 1.313 0 0 0-1.312 1.312v4.5a1.313 1.313 0 0 0 1.312 1.313h4.5a1.31 1.31 0 0 0 1.313-1.313v-4.5a1.31 1.31 0 0 0-1.313-1.312m.188 5.812a.19.19 0 0 1-.188.188h-4.5a.19.19 0 0 1-.187-.188v-4.5a.19.19 0 0 1 .187-.187h4.5a.19.19 0 0 1 .188.187zM18.75 3.938h-4.5a1.313 1.313 0 0 0-1.312 1.312v4.5a1.31 1.31 0 0 0 1.312 1.313h4.5a1.31 1.31 0 0 0 1.313-1.313v-4.5a1.313 1.313 0 0 0-1.313-1.312m.188 5.812a.19.19 0 0 1-.188.188h-4.5a.19.19 0 0 1-.187-.188v-4.5a.19.19 0 0 1 .187-.187h4.5a.19.19 0 0 1 .188.187zm-6 6.75v-3a.562.562 0 1 1 1.124 0v3a.562.562 0 1 1-1.124 0m7.124-1.5a.56.56 0 0 1-.562.563h-2.437V19.5a.56.56 0 0 1-.563.563h-3a.562.562 0 1 1 0-1.125h2.438V13.5a.562.562 0 1 1 1.124 0v.938H19.5a.56.56 0 0 1 .563.562m0 3v1.5a.562.562 0 1 1-1.125 0V18a.562.562 0 1 1 1.125 0"></path>
|
||
</g>
|
||
<defs>
|
||
<clipPath id="clip0_4116_10682">
|
||
<path fill="#fff" d="M0 0h24v24H0z"></path>
|
||
</clipPath>
|
||
</defs>
|
||
</svg>
|
||
<span class="bb b bc u et">Get app</span>
|
||
</button>
|
||
</div>
|
||
<div class="au bt p ft fu">
|
||
<span data-dd-action-name="Susi presentation tracker new_post_topnav">
|
||
<a class="z ab ac fl af ag ah ai aj ak al am an ao ap" data-testid="headerWriteButton" rel="noopener follow" href="/m/signin?operation=register&redirect=https%3A%2F%2Fmedium.com%2Fnew-story&source=---top_nav_layout_nav-----------------------new_post_topnav------------------" data-discover="true">
|
||
<div class="bb b bc u dy fv fw v j fx fy fz">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24">
|
||
<path fill="currentColor" d="M14 4a.5.5 0 0 0 0-1zm7 6a.5.5 0 0 0-1 0zm-7-7H4v1h10zM3 4v16h1V4zm1 17h16v-1H4zm17-1V10h-1v10zm-1 1a1 1 0 0 0 1-1h-1zM3 20a1 1 0 0 0 1 1v-1zM4 3a1 1 0 0 0-1 1h1z"></path>
|
||
<path stroke="currentColor" d="m17.5 4.5-8.458 8.458a.25.25 0 0 0-.06.098l-.824 2.47a.25.25 0 0 0 .316.316l2.47-.823a.25.25 0 0 0 .098-.06L19.5 6.5m-2-2 2.323-2.323a.25.25 0 0 1 .354 0l1.646 1.646a.25.25 0 0 1 0 .354L19.5 6.5m-2-2 2 2"></path>
|
||
</svg>
|
||
Write
|
||
</div>
|
||
</a>
|
||
</span>
|
||
</div>
|
||
<div class="bt by r s">
|
||
<a class="z ab ac fl af ag ah ai aj ak al am an ao ap" data-testid="headerSearchButton" rel="noopener follow" href="/search?source=post_page---top_nav_layout_nav-----------------------------------------" data-discover="true">
|
||
<div class="bb b bc u dy fv fw v j fx fy fz">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24">
|
||
<path fill="currentColor" fill-rule="evenodd" d="M4.092 11.06a6.95 6.95 0 1 1 13.9 0 6.95 6.95 0 0 1-13.9 0m6.95-8.05a8.05 8.05 0 1 0 5.13 14.26l3.75 3.75a.56.56 0 1 0 .79-.79l-3.73-3.73A8.05 8.05 0 0 0 11.042 3z" clip-rule="evenodd"></path>
|
||
</svg>
|
||
<span class="ga gb gc ai gd ge gf fo gg speechify-ignore">Search</span>
|
||
</div>
|
||
</a>
|
||
</div>
|
||
<div class="gh au bt by">
|
||
<div class="v j">
|
||
<p class="bb b eb ec ed ee ef eg eh ei ej ek dy">
|
||
<span data-dd-action-name="Susi presentation tracker global_nav">
|
||
<button class="bb b eb ec el ed ee em ef eg eo ep ei eq er ek es et eu ev ew ex ey ez fa fb fc fd fe ff fg fh bi fi fj" data-testid="headerSignUpButton">Sign up</button>
|
||
</span>
|
||
</p>
|
||
<div class="fk e">
|
||
<p class="bb b eb ec ed ee ef eg eh ei ej ek dy">
|
||
<span data-dd-action-name="Susi presentation tracker global_nav">
|
||
<a class="z ab ac fl af ag ah ai aj ak al am an ao ap" data-testid="headerSignInButton" rel="noopener follow" href="/m/signin?operation=login&redirect=https%3A%2F%2Fmedium.com%2F%40kunalbhardwaj598%2Fi-was-burning-through-claude-codes-weekly-limit-in-3-days-here-s-how-i-fixed-it-0344c555abda&source=post_page---top_nav_layout_nav-----------------------global_nav------------------" data-discover="true">Sign in</a>
|
||
</span>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="e">
|
||
<div>
|
||
<div class="bi" role="tooltip">
|
||
<div tabindex="-1" class="ba">
|
||
<button class="ae gi ai v j ak fv gj gk gl" aria-label="user options menu" data-testid="headerUserIcon">
|
||
<div class="e fv">
|
||
<img alt="" class="e fh bu bv bw db" src="https://miro.medium.com/v2/resize:fill:64:64/1*dmbNkD5D-u45r44go_cf0g.png" width="32" height="32" loading="lazy" role="presentation"/>
|
||
<div class="gm bu e bv bw ga g ae gn"></div>
|
||
</div>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="v">
|
||
<div class="bx au bt by r bz" style="width:0px"></div>
|
||
<div class="ca bd cb cc cd ce" style="width:calc(100% - 0px)">
|
||
<div class="e">
|
||
<div class="go gp gq gr gs e">
|
||
<div class="v cf">
|
||
<div class="cm bd gt gu gv gw"></div>
|
||
</div>
|
||
<article>
|
||
<div class="e">
|
||
<div class="e">
|
||
<span class="e"></span>
|
||
<section>
|
||
<div>
|
||
<div class="ga hc hd he hf hg"></div>
|
||
<div class="hh hi hj hk hl">
|
||
<div class="v cf">
|
||
<div class="cm bd gt gu gv gw">
|
||
<div>
|
||
<h1 id="a7c6" class="pw-post-title hm hn ho bb hp hq hr hs ht hu hv hw hx hy hz ia ib ic id ie if ig ih ii ij ik il im in io bg" data-testid="storyTitle">I Was Burning Through Claude Code’s Weekly Limit in 3 Days. Here’s How I Fixed It.</h1>
|
||
<div>
|
||
<div class="speechify-ignore v ct">
|
||
<div class="speechify-ignore bd e">
|
||
<div class="v ip iq ir is it iu iv iw ix iy iz">
|
||
<div class="v j iz">
|
||
<div class="v ja">
|
||
<div>
|
||
<div class="bi" role="tooltip">
|
||
<div tabindex="-1" class="ba">
|
||
<a rel="noopener follow" href="/@kunalbhardwaj598?source=post_page---byline--0344c555abda---------------------------------------" data-discover="true">
|
||
<div class="e jb jc bu jd je">
|
||
<div class="e fv">
|
||
<img alt="Kunalbhardwaj" class="e fh bu bv bw db" src="https://miro.medium.com/v2/da:true/resize:fill:64:64/0*B_H6FgNfG5N9tYAJ" width="32" height="32" loading="lazy" data-testid="authorPhoto"/>
|
||
<div class="jf bu e bv bw ga g jg gn"></div>
|
||
</div>
|
||
</div>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<span class="bb b bc u bg">
|
||
<div class="jh v j">
|
||
<div class="v j ji">
|
||
<div class="v j">
|
||
<div>
|
||
<div class="bi" role="tooltip">
|
||
<div tabindex="-1" class="ba">
|
||
<span class="bb b bc u bg">
|
||
<a class="z ab ac fl af ag ah ai aj ak al am an jj" data-testid="authorName" rel="noopener follow" href="/@kunalbhardwaj598?source=post_page---byline--0344c555abda---------------------------------------" data-discover="true">Kunalbhardwaj</a>
|
||
</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="jk bi"></div>
|
||
</div>
|
||
</div>
|
||
</span>
|
||
</div>
|
||
<div class="v j jl">
|
||
<span class="bb b bc u dy">
|
||
<div class="v y">
|
||
<span data-testid="storyReadTime">7 min read</span>
|
||
<div class="jm jn e" aria-hidden="true">
|
||
<span class="e" aria-hidden="true">
|
||
<span class="bb b bc u dy">·</span>
|
||
</span>
|
||
</div>
|
||
Just now
|
||
</div>
|
||
</span>
|
||
</div>
|
||
</div>
|
||
<div class="v ct jo jp jq jr js jt ju jv jw jx jy jz ka kb kc kd">
|
||
<div class="au bt p ft fu j">
|
||
<div class="v j">
|
||
<div class="kt e">
|
||
<div class="v j ku kv">
|
||
<div class="pw-multi-vote-icon fv kw kx ky kz">
|
||
<span data-dd-action-name="Susi presentation tracker clap_footer">
|
||
<a class="z ab ac fl af ag ah ai aj ak al am an ao ap" data-testid="headerClapButton" rel="noopener follow" href="/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fvote%2Fp%2F0344c555abda&operation=register&redirect=https%3A%2F%2Fmedium.com%2F%40kunalbhardwaj598%2Fi-was-burning-through-claude-codes-weekly-limit-in-3-days-here-s-how-i-fixed-it-0344c555abda&user=Kunalbhardwaj&userId=eb08f87ca727&source=---header_actions--0344c555abda---------------------clap_footer------------------" data-discover="true">
|
||
<div>
|
||
<div class="bi" role="tooltip">
|
||
<div tabindex="-1" class="ba">
|
||
<div class="la ak lb lc ld le ai lf lg lh kz" role="presentation">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" aria-label="clap">
|
||
<path fill-rule="evenodd" d="M11.37.828 12 3.282l.63-2.454zM13.916 3.953l1.523-2.112-1.184-.39zM8.589 1.84l1.522 2.112-.337-2.501zM18.523 18.92c-.86.86-1.75 1.246-2.62 1.33a6 6 0 0 0 .407-.372c2.388-2.389 2.86-4.951 1.399-7.623l-.912-1.603-.79-1.672c-.26-.56-.194-.98.203-1.288a.7.7 0 0 1 .546-.132c.283.046.546.231.728.5l2.363 4.157c.976 1.624 1.141 4.237-1.324 6.702m-10.999-.438L3.37 14.328a.828.828 0 0 1 .585-1.408.83.83 0 0 1 .585.242l2.158 2.157a.365.365 0 0 0 .516-.516l-2.157-2.158-1.449-1.449a.826.826 0 0 1 1.167-1.17l3.438 3.44a.363.363 0 0 0 .516 0 .364.364 0 0 0 0-.516L5.293 9.513l-.97-.97a.826.826 0 0 1 0-1.166.84.84 0 0 1 1.167 0l.97.968 3.437 3.436a.36.36 0 0 0 .517 0 .366.366 0 0 0 0-.516L6.977 7.83a.82.82 0 0 1-.241-.584.82.82 0 0 1 .824-.826c.219 0 .43.087.584.242l5.787 5.787a.366.366 0 0 0 .587-.415l-1.117-2.363c-.26-.56-.194-.98.204-1.289a.7.7 0 0 1 .546-.132c.283.046.545.232.727.501l2.193 3.86c1.302 2.38.883 4.59-1.277 6.75-1.156 1.156-2.602 1.627-4.19 1.367-1.418-.236-2.866-1.033-4.079-2.246M10.75 5.971l2.12 2.12c-.41.502-.465 1.17-.128 1.89l.22.465-3.523-3.523a.8.8 0 0 1-.097-.368c0-.22.086-.428.241-.584a.847.847 0 0 1 1.167 0m7.355 1.705c-.31-.461-.746-.758-1.23-.837a1.44 1.44 0 0 0-1.11.275c-.312.24-.505.543-.59.881a1.74 1.74 0 0 0-.906-.465 1.47 1.47 0 0 0-.82.106l-2.182-2.182a1.56 1.56 0 0 0-2.2 0 1.54 1.54 0 0 0-.396.701 1.56 1.56 0 0 0-2.21-.01 1.55 1.55 0 0 0-.416.753c-.624-.624-1.649-.624-2.237-.037a1.557 1.557 0 0 0 0 2.2c-.239.1-.501.238-.715.453a1.56 1.56 0 0 0 0 2.2l.516.515a1.556 1.556 0 0 0-.753 2.615L7.01 19c1.32 1.319 2.909 2.189 4.475 2.449q.482.08.971.08c.85 0 1.653-.198 2.393-.579.231.033.46.054.686.054 1.266 0 2.457-.52 3.505-1.567 2.763-2.763 2.552-5.734 1.439-7.586z" clip-rule="evenodd"></path>
|
||
</svg>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</a>
|
||
</span>
|
||
</div>
|
||
<div class="pw-multi-vote-count e li lj lk ll lm ln lo">
|
||
<p class="bb b dz u dy">
|
||
<span class="lp">--</span>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="lq gh e">
|
||
<div>
|
||
<div class="bi" role="tooltip">
|
||
<div tabindex="-1" class="ba">
|
||
<button class="ak la lr ls v j fw lt lu" aria-label="responses">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" class="lv">
|
||
<path d="M18.006 16.803c1.533-1.456 2.234-3.325 2.234-5.321C20.24 7.357 16.709 4 12.191 4S4 7.357 4 11.482c0 4.126 3.674 7.482 8.191 7.482.817 0 1.622-.111 2.393-.327.231.2.48.391.744.559 1.06.693 2.203 1.044 3.399 1.044.224-.008.4-.112.486-.287a.49.49 0 0 0-.042-.518c-.495-.67-.845-1.364-1.04-2.057a4 4 0 0 1-.125-.598zm-3.122 1.055-.067-.223-.315.096a8 8 0 0 1-2.311.338c-4.023 0-7.292-2.955-7.292-6.587 0-3.633 3.269-6.588 7.292-6.588 4.014 0 7.112 2.958 7.112 6.593 0 1.794-.608 3.469-2.027 4.72l-.195.168v.255c0 .056 0 .151.016.295.025.231.081.478.154.733.154.558.398 1.117.722 1.659a5.3 5.3 0 0 1-2.165-.845c-.276-.176-.714-.383-.941-.59z"></path>
|
||
</svg>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="v j ke kf kg kh ki kj kk kl km kn ko kp kq kr ks">
|
||
<div class="lw bt by r s"></div>
|
||
<div class="au bt">
|
||
<div>
|
||
<div class="bi" role="tooltip">
|
||
<div tabindex="-1" class="ba">
|
||
<span data-dd-action-name="Susi presentation tracker bookmark_footer">
|
||
<a class="z ab ac fl af ag ah ai aj ak al am an ao ap" data-testid="headerBookmarkButton" rel="noopener follow" href="/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F0344c555abda&operation=register&redirect=https%3A%2F%2Fmedium.com%2F%40kunalbhardwaj598%2Fi-was-burning-through-claude-codes-weekly-limit-in-3-days-here-s-how-i-fixed-it-0344c555abda&source=---header_actions--0344c555abda---------------------bookmark_footer------------------" data-discover="true">
|
||
<span class="">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="dy lx" aria-label="Add to list bookmark button">
|
||
<path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path>
|
||
</svg>
|
||
</span>
|
||
</a>
|
||
</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="fh ly cr">
|
||
<div class="e y">
|
||
<div class="v cf">
|
||
<div class="lz ma mb mc md me cm bd">
|
||
<div class="v">
|
||
<span data-dd-action-name="Susi presentation tracker post_audio_button">
|
||
<a class="z ab ac fl af ag ah ai aj ak al am an ao ap" rel="noopener follow" href="/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2Fplans%3Fdimension%3Dpost_audio_button%26postId%3D0344c555abda&operation=register&redirect=https%3A%2F%2Fmedium.com%2F%40kunalbhardwaj598%2Fi-was-burning-through-claude-codes-weekly-limit-in-3-days-here-s-how-i-fixed-it-0344c555abda&source=---header_actions--0344c555abda---------------------post_audio_button------------------" data-discover="true">
|
||
<div>
|
||
<div class="bi" role="tooltip">
|
||
<div tabindex="-1" class="ba">
|
||
<button aria-label="Listen" data-testid="audioPlayButton" class="z fw ac fl af ag ah mf aj ak al fb mg mh lu mi mj mk ml mm l mn mo mp mq mr ms mt n mu mv mw">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24">
|
||
<path fill="currentColor" fill-rule="evenodd" d="M3 12a9 9 0 1 1 18 0 9 9 0 0 1-18 0m9-10C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2m3.376 10.416-4.599 3.066a.5.5 0 0 1-.777-.416V8.934a.5.5 0 0 1 .777-.416l4.599 3.066a.5.5 0 0 1 0 .832" clip-rule="evenodd"></path>
|
||
</svg>
|
||
<div class="by r s">
|
||
<p class="bb b bc u dy">Listen</p>
|
||
</div>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</a>
|
||
</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="bi" aria-describedby="postFooterSocialMenu" aria-labelledby="postFooterSocialMenu">
|
||
<div>
|
||
<div class="bi" role="tooltip">
|
||
<div tabindex="-1" class="ba">
|
||
<button aria-controls="postFooterSocialMenu" aria-expanded="false" aria-label="Share Post" data-testid="headerSocialShareButton" class="z fw ac fl af ag ah mf aj ak al fb mg mh lu mi mj mk ml mm l mn mo mp mq mr ms mt n mu mv mw">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24">
|
||
<path fill="currentColor" fill-rule="evenodd" d="M15.218 4.931a.4.4 0 0 1-.118.132l.012.006a.45.45 0 0 1-.292.074.5.5 0 0 1-.3-.13l-2.02-2.02v7.07c0 .28-.23.5-.5.5s-.5-.22-.5-.5v-7.04l-2 2a.45.45 0 0 1-.57.04h-.02a.4.4 0 0 1-.16-.3.4.4 0 0 1 .1-.32l2.8-2.8a.5.5 0 0 1 .7 0l2.8 2.79a.42.42 0 0 1 .068.498m-.106.138.008.004v-.01zM16 7.063h1.5a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-11c-1.1 0-2-.9-2-2v-10a2 2 0 0 1 2-2H8a.5.5 0 0 1 .35.15.5.5 0 0 1 .15.35.5.5 0 0 1-.15.35.5.5 0 0 1-.35.15H6.4c-.5 0-.9.4-.9.9v10.2a.9.9 0 0 0 .9.9h11.2c.5 0 .9-.4.9-.9v-10.2c0-.5-.4-.9-.9-.9H16a.5.5 0 0 1 0-1" clip-rule="evenodd"></path>
|
||
</svg>
|
||
<div class="by r s">
|
||
<p class="bb b bc u dy">Share</p>
|
||
</div>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p id="cd8d" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">
|
||
I build drone guidance systems for a living. Ground control stations, onboard computers, MAVLink protocols, gimbal control loops — real-time systems where bugs mean a 30–100kg UAVs (Multicopters, <br/>VTOLs and Fixed Wing) crashes into something expensive.
|
||
</p>
|
||
<p id="7fec" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">Claude Code became my primary development environment about six months ago. I’m on the Pro plan. And every single week, without fail, I’d hit my token limit by Wednesday.</p>
|
||
<p id="d1b6" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">Not because I was being wasteful. Because the work genuinely required it — reading 800-line Python files to understand thread interactions, generating test harnesses, updating documentation after every feature session. Normal engineering work, but Claude was eating through my allocation like it was nothing.</p>
|
||
<p id="7adc" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">I tried the standard tricks. Compact after every task. Use Sonnet for simple edits. Write tighter prompts. Didn’t matter. By midweek, I’d get the “you’ve reached your limit” message and my momentum would die.</p>
|
||
<p id="f2cd" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">So I did something different. I gave Claude a coworker.</p>
|
||
<p id="f775" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">
|
||
<strong class="mz hp">The Realization That Changed Everything</strong>
|
||
</p>
|
||
<p id="e861" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">
|
||
One night, frustrated after hitting limits at 2 PM on a Tuesday, I sat down and actually read Claude Code’s [tools reference documentation](<a class="z nv" href="https://code.claude.com/docs/en/tools-reference" rel="noopener ugc nofollow" target="_blank">https://code.claude.com/docs/en/tools-reference</a>
|
||
). Not skimmed — read.
|
||
</p>
|
||
<p id="ebee" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">
|
||
And I noticed something obvious that I’d been ignoring: <strong class="mz hp">Claude Code’s Bash tool can run any command on your PATH.</strong>
|
||
</p>
|
||
<p id="565b" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">Any command. Any script. Anything that takes stdin and prints to stdout.</p>
|
||
<blockquote class="nw nx ny">
|
||
<p id="b4de" class="mx my nz mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">That means Claude can call external APIs. Not through some plugin system or MCP server or extension marketplace. Just… a Python script in `~/bin/` that Claude runs via Bash.</p>
|
||
</blockquote>
|
||
<p id="5646" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">
|
||
The second realization: <strong class="mz hp">most of what Claude does for me isn’t thinking. It’s I/O.</strong>
|
||
</p>
|
||
<p id="1120" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">Reading large files to answer a question about one function. Generating a test file that’s 80% boilerplate. Rewriting documentation after a conversation. These tasks burn thousands of tokens but require almost zero reasoning. Claude’s intelligence is overkill for them.</p>
|
||
<p id="9e3e" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">What if I could route these tasks to something cheaper?</p>
|
||
<p id="be89" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">
|
||
<strong class="mz hp">The Architecture: 60 Lines of Python, Zero Overhead</strong>
|
||
</p>
|
||
<p id="ab3a" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">I picked Kimi K2.5 (Moonshot AI) as my worker model. Why?</p>
|
||
<ol class="">
|
||
<li id="6699" class="mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu oa ob oc bg">OpenAI-compatible API — the `openai` Python package works with zero changes, just swap the `base_url`</li>
|
||
<li id="0407" class="mx my ho mz b na od nc nd ne oe ng nh ni of nk nl nm og no np nq oh ns nt nu oa ob oc bg">
|
||
128K context window — can ingest my entire GCS codebase in one call<br/>- Costs roughly 1/100th of what equivalent Claude work would cost on my Pro plan
|
||
</li>
|
||
<li id="a297" class="mx my ho mz b na od nc nd ne oe ng nh ni of nk nl nm og no np nq oh ns nt nu oa ob oc bg">Has a “thinking” mode (internal chain-of-thought) that actually produces good technical analysis</li>
|
||
</ol>
|
||
<p id="5ad1" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">But honestly, the specific model doesn’t matter. DeepSeek, Qwen, Gemini Flash — anything cheap with a long context window works. The pattern is what matters.</p>
|
||
<p id="9cd8" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">I wrote two CLI tools. Total implementation: about 60 lines each.</p>
|
||
<h2 id="cba1" class="oi oj ho bb ok ol om on oo op oq or os ot ou ov ow ox oy oz pa pb pc pd pe pf bg">
|
||
<strong class="ah">Tool 1: `ask-kimi` — The Bulk Reader</strong>
|
||
</h2>
|
||
<p id="f55d" class="pw-post-body-paragraph mx my ho mz b na pg nc nd ne ph ng nh ni pi nk nl nm pj no np nq pk ns nt nu hh bg">This is for when Claude would otherwise read multiple large files into its context window just to answer one question.</p>
|
||
<pre class="pl pm pn po pp pq pr ps bl pt ax bg">
|
||
<span id="0e39" class="pu oj ho pr b bc pv pw e px py">
|
||
#!/path/to/venv/bin/python3<br/>
|
||
"""Delegate bulk reading to Kimi K2.5."""<br/>
|
||
import argparse, os, pathlib<br/>
|
||
from openai import OpenAI<br/>
|
||
<br/>
|
||
client = OpenAI(<br/>
|
||
api_key=os.environ["MOONSHOT_API_KEY "],<br/>
|
||
base_url="https://api.moonshot.ai/v1 ",<br/>
|
||
)<br/>
|
||
<br/>
|
||
# Read the files, pack them into a corpus<br/>
|
||
docs = []<br/>
|
||
for path in args.paths:<br/>
|
||
content = pathlib.Path(path).read_text()<br/>
|
||
docs.append(f "<file path='{path}'>\n{content}\n </file >")<br/>
|
||
corpus = "\n\n ".join(docs)<br/>
|
||
<br/>
|
||
# Ask Kimi to analyze them<br/>
|
||
resp = client.chat.completions.create(<br/>
|
||
model="kimi-k2.5 ",<br/>
|
||
messages=[<br/>
|
||
{"role ": "system ", "content ": "You are a precise code analyst..."},<br/>
|
||
{"role ": "user ", "content ": f "<corpus >\n{corpus}\n </corpus >"},<br/>
|
||
{"role ": "user ", "content ": args.question},<br/>
|
||
],<br/>
|
||
max_tokens=8192,<br/>
|
||
)<br/>print(resp.choices[0].message.content)
|
||
</span>
|
||
</pre>
|
||
<p id="e63f" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">When Claude needs to understand something spread across multiple files, instead of reading them all (let’s say 5 files × 400 lines = ~8,000 tokens burned), it runs:</p>
|
||
<pre class="pl pm pn po pp pq pr ps bl pt ax bg">
|
||
<span id="570a" class="pu oj ho pr b bc pv pw e px py">
|
||
ask-kimi --paths gcs_main.py gimbal_control.py network.py \<br/>--question "What IP addresses and ports are used for video streaming?"
|
||
</span>
|
||
</pre>
|
||
<p id="0fc1" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">Kimi reads all three files, produces a 300-word structured summary. Claude reads the summary (~400 tokens) and has its answer.</p>
|
||
<blockquote class="nw nx ny">
|
||
<p id="078d" class="mx my nz mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">
|
||
<strong class="mz hp">Before: 8,000 tokens. After: 400 tokens. Same information.</strong>
|
||
</p>
|
||
</blockquote>
|
||
<h2 id="c332" class="oi oj ho bb ok ol om on oo op oq or os ot ou ov ow ox oy oz pa pb pc pd pe pf bg">
|
||
<strong class="ah">Tool 2: `kimi-write` — The Boilerplate Generator</strong>
|
||
</h2>
|
||
<p id="2f42" class="pw-post-body-paragraph mx my ho mz b na pg nc nd ne ph ng nh ni pi nk nl nm pj no np nq pk ns nt nu hh bg">For test files, config scaffolding, documentation — anything where Claude would spend expensive output tokens generating predictable text:</p>
|
||
<pre class="pl pm pn po pp pq pr ps bl pt ax bg">
|
||
<span id="0cc8" class="pu oj ho pr b bc pv pw e px py">
|
||
kimi-write --spec "pytest test file for the MAVLink heartbeat parser "\<br/>
|
||
--context src/mavlink_parser.py \<br/>--target tests/test_mavlink_parser.py
|
||
</span>
|
||
</pre>
|
||
<p id="abc2" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">Kimi reads the reference file, generates the entire test file, writes it to disk. Claude then reviews what was generated and makes surgical edits — only spending tokens on the 5% that needs its intelligence.</p>
|
||
<p id="1060" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">
|
||
<strong class="mz hp">The Part Nobody Tells You: Making Claude Actually Use the Tools</strong>
|
||
</p>
|
||
<p id="6ece" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">Here’s where most people would stop. “Cool, I have two scripts.” But Claude won’t use them unless you tell it to.</p>
|
||
<p id="758c" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">Claude Code reads a file called `CLAUDE.md` in your project root at the start of every session. It’s essentially Claude’s instruction manual for your project. And this is where the routing logic lives:</p>
|
||
<pre class="pl pm pn po pp pq pr ps bl pt ax bg">
|
||
<span id="fde1" class="pu oj ho pr b bc pv pw e px py">
|
||
## Kimi K2.5 Delegation Tools (Token Saving)<br/>
|
||
<br/>
|
||
### ask-kimi — bulk reading<br/>
|
||
For reading files >400 lines, or when you 'd otherwise read 3+ files:<br/>
|
||
ask-kimi --paths <file1 ><file2 >... --question "<question >"<br/>
|
||
Returns a structured summary. Use that instead of reading files yourself.<br/>
|
||
<br/>
|
||
### kimi-write — boilerplate generation<br/>
|
||
For tests, config files, docstrings, or repetitive patterns:<br/>
|
||
kimi-write --spec "<what >"--context <reference >--target <output ><br/>
|
||
Then review the output and edit only what needs fixing.<br/>
|
||
<br/>
|
||
### When NOT to delegate<br/>
|
||
- Tasks under ~2000 tokens (delegation overhead isn 't worth it)<br/>
|
||
- Architectural decisions, debugging, safety-critical code<br/>
|
||
- Anything requiring careful reasoning<br/>- When exact line numbers are needed for editing
|
||
</span>
|
||
</pre>
|
||
<p id="3523" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">That last section — “When NOT to delegate” — is critical. Without it, Claude would try to route everything to Kimi, including stuff where you genuinely need Claude’s reasoning. The boundary has to be explicit:</p>
|
||
<blockquote class="nw nx ny">
|
||
<p id="be5b" class="mx my nz mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">Claude = thinking. Kimi = I/O.</p>
|
||
</blockquote>
|
||
<p id="7345" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">Debugging a race condition between my camera thread and MAVLink thread? That’s Claude. Reading 5 files to understand which ports are in use? That’s Kimi. Writing a new test file matching existing patterns? That’s Kimi. Deciding whether a guidance calculation is numerically stable? Claude.</p>
|
||
<p id="499c" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">Once I put these rules in `CLAUDE.md`, Claude started self-routing without any manual intervention. I’d ask a question about my codebase and watch it reach for `ask-kimi` instead of reading the files itself. No friction. No extra prompting. It just… works.</p>
|
||
<p id="759a" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">
|
||
<strong class="mz hp">The Documentation Pipeline: The Biggest Win</strong>
|
||
</p>
|
||
<p id="29fe" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">This was the unexpected multiplier.</p>
|
||
<p id="d49a" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">After every feature session, I used to update my project docs in Obsidian. Claude would re-read the conversation context, re-read the existing docs, then write prose updates. Easily 5,000+ tokens per doc update — and I was doing this multiple times per day.</p>
|
||
<p id="70ad" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">I built a third tool: `extract-chat`. It takes Claude Code’s JSONL session transcript and strips it down to just the human-readable conversation text (no tool calls, no system prompts, no binary data).</p>
|
||
<p id="fd50" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">Now the documentation workflow is:</p>
|
||
<pre class="pl pm pn po pp pq pr ps bl pt ax bg">
|
||
<span id="b189" class="pu oj ho pr b bc pv pw e px py">
|
||
# 1. Extract clean conversation text<br/>
|
||
extract-chat ~/.claude/projects/my-project/session.jsonl -o /tmp/chat.txt<br/>
|
||
<br/>
|
||
# 2. Kimi reads the chat + existing docs, produces update suggestions<br/>
|
||
ask-kimi --paths /tmp/chat.txt docs/architecture.md \<br/>
|
||
--question "Read the chat. What doc updates are needed? Give exact edits."<br/>
|
||
<br/># 3. Claude applies Kimi 's suggestions (tiny token cost)
|
||
</span>
|
||
</pre>
|
||
<p id="1045" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">Claude’s total token cost for a documentation update went from ~5,000 tokens to ~200 tokens. Twenty-five times less. And the documentation quality is the same because Kimi has the full conversation context and the full existing doc.</p>
|
||
<p id="937d" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">Black and Teal Modern Web Developer PresentationI put this in `CLAUDE.md` as a mandatory rule:</p>
|
||
<pre class="pl pm pn po pp pq pr ps bl pt ax bg">
|
||
<span id="8b5f" class="pu oj ho pr b bc pv pw e px py">
|
||
### Documentation workflow (MANDATORY)<br/>**NEVER write documentation directly. Always delegate to kimi.**
|
||
</span>
|
||
</pre>
|
||
<p id="6924" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">Claude follows it. Every time. No exceptions.</p>
|
||
<p id="0ca4" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">
|
||
<strong class="mz hp">Things I Learned the Hard Way</strong>
|
||
</p>
|
||
<p id="0e5e" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">
|
||
<strong class="mz hp">Kimi K2.5 is a “thinking” model — and it’ll eat your budget silently</strong>
|
||
</p>
|
||
<p id="494f" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">
|
||
My first version used <em class="nz">`max_tokens=2048`</em>
|
||
. Kimi would use 1,500 tokens for internal reasoning (invisible to you) and have 548 tokens left for the actual answer. The response came back <strong class="mz hp">completely empty</strong>
|
||
. No error, just… nothing.
|
||
</p>
|
||
<p id="6ce2" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">
|
||
The fix: always set <em class="nz">`max_tokens`</em>
|
||
high enough to cover both reasoning + answer. I use 8192 for reading tasks and 16384 for generation tasks. Kimi’s thinking tokens are cheap, but you have to budget for them.
|
||
</p>
|
||
<p id="09c0" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">
|
||
<strong class="mz hp">Corpus ordering enables cache hits</strong>
|
||
</p>
|
||
<p id="5129" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">Moonshot (like Anthropic) has prefix caching. If the first N tokens of your request match a previous request, they’re served from cache at 25% of the normal cost.</p>
|
||
<blockquote class="nw nx ny">
|
||
<p id="5220" class="mx my nz mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">So I always put the files first, question last:</p>
|
||
</blockquote>
|
||
<pre class="pl pm pn po pp pq pr ps bl pt ax bg">
|
||
<span id="16ff" class="pu oj ho pr b bc pv pw e px py">
|
||
messages = [<br/>
|
||
{"role ": "user ", "content ": f "<corpus >{corpus}</corpus >"},<br/>
|
||
{"role ": "user ", "content ": question}, # only this changes between calls<br/>]
|
||
</span>
|
||
</pre>
|
||
<p id="0ba9" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">Ask three questions about the same files? The first call pays full price, the next two are 75% cheaper because the corpus prefix is cached.</p>
|
||
<p id="c145" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">
|
||
<strong class="mz hp">Don’t delegate reasoning</strong>
|
||
</p>
|
||
<p id="6b10" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">I tried routing debugging to Kimi early on. Bad move. It found surface-level issues but missed the subtle thread-safety bug that was actually causing my problem. Claude spotted it in 30 seconds once I gave it the right context.</p>
|
||
<p id="dc19" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">The value of Claude isn’t reading files. Any model can do that. Claude’s value is connecting dots, spotting implications, understanding intent. Keep the thinking on Claude, route the paperwork elsewhere.</p>
|
||
<p id="09a0" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">
|
||
<strong class="mz hp">The Numbers</strong>
|
||
</p>
|
||
<p id="6000" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">After three weeks of running this setup on real engineering work:</p>
|
||
<figure class="pl pm pn po pp qc pz qa paragraph-image">
|
||
<div role="button" tabindex="0" class="qd qe fv qf bd qg">
|
||
<span class="ga gb gc ai gd ge gf fo gg speechify-ignore">Press enter or click to view image in full size</span>
|
||
<div class="pz qa qb">
|
||
<picture>
|
||
<source srcSet="https://miro.medium.com/v2/resize:fit:640/format:webp/1*3JwOUdCXFwnc2ly7Z1SY8Q.png 640w, https://miro.medium.com/v2/resize:fit:720/format:webp/1*3JwOUdCXFwnc2ly7Z1SY8Q.png 720w, https://miro.medium.com/v2/resize:fit:750/format:webp/1*3JwOUdCXFwnc2ly7Z1SY8Q.png 750w, https://miro.medium.com/v2/resize:fit:786/format:webp/1*3JwOUdCXFwnc2ly7Z1SY8Q.png 786w, https://miro.medium.com/v2/resize:fit:828/format:webp/1*3JwOUdCXFwnc2ly7Z1SY8Q.png 828w, https://miro.medium.com/v2/resize:fit:1100/format:webp/1*3JwOUdCXFwnc2ly7Z1SY8Q.png 1100w, https://miro.medium.com/v2/resize:fit:1400/format:webp/1*3JwOUdCXFwnc2ly7Z1SY8Q.png 1400w" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" type="image/webp"/>
|
||
<source data-testid="og" srcSet="https://miro.medium.com/v2/resize:fit:640/1*3JwOUdCXFwnc2ly7Z1SY8Q.png 640w, https://miro.medium.com/v2/resize:fit:720/1*3JwOUdCXFwnc2ly7Z1SY8Q.png 720w, https://miro.medium.com/v2/resize:fit:750/1*3JwOUdCXFwnc2ly7Z1SY8Q.png 750w, https://miro.medium.com/v2/resize:fit:786/1*3JwOUdCXFwnc2ly7Z1SY8Q.png 786w, https://miro.medium.com/v2/resize:fit:828/1*3JwOUdCXFwnc2ly7Z1SY8Q.png 828w, https://miro.medium.com/v2/resize:fit:1100/1*3JwOUdCXFwnc2ly7Z1SY8Q.png 1100w, https://miro.medium.com/v2/resize:fit:1400/1*3JwOUdCXFwnc2ly7Z1SY8Q.png 1400w" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px"/>
|
||
<img alt="" class="bd me qh c" width="700" height="300" loading="eager" role="presentation"/>
|
||
</picture>
|
||
</div>
|
||
</div>
|
||
</figure>
|
||
<p id="8397" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">That’s not a typo. Thirty-eight cents. For three weeks of daily engineering work. And I haven’t hit my Claude Pro limit once since setting this up.</p>
|
||
<p id="c92a" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">
|
||
<strong class="mz hp">You Don’t Need My Specific Stack</strong>
|
||
</p>
|
||
<p id="c86f" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">The pattern works with any combination:</p>
|
||
<ol class="">
|
||
<li id="4275" class="mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu oa ob oc bg">Expensive model: Claude Code, Cursor, Copilot — whatever you’re burning through</li>
|
||
<li id="8968" class="mx my ho mz b na od nc nd ne oe ng nh ni of nk nl nm og no np nq oh ns nt nu oa ob oc bg">Cheap worker: DeepSeek V3, Qwen 2.5, Gemini Flash, Kimi K2.5, Llama 3.3 via Together/Groq — anything with an OpenAI-compatible API</li>
|
||
<li id="2cca" class="mx my ho mz b na od nc nd ne oe ng nh ni of nk nl nm og no np nq oh ns nt nu oa ob oc bg">Routing mechanism: CLAUDE.md for Claude Code, rules files for Cursor, system prompts for others</li>
|
||
</ol>
|
||
<p id="2e69" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">The ingredients are:</p>
|
||
<ol class="">
|
||
<li id="218e" class="mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu oa ob oc bg">A CLI tool that calls the cheap API (30 lines of Python)</li>
|
||
<li id="eb47" class="mx my ho mz b na od nc nd ne oe ng nh ni of nk nl nm og no np nq oh ns nt nu oa ob oc bg">An instruction that tells the expensive model *when* to call it</li>
|
||
<li id="9d1b" class="mx my ho mz b na od nc nd ne oe ng nh ni of nk nl nm og no np nq oh ns nt nu oa ob oc bg">A clear boundary: thinking stays expensive, I/O goes cheap</li>
|
||
</ol>
|
||
<p id="2349" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">It took me an afternoon to build. The Python scripts are trivial. The `CLAUDE.md` routing rules are 20 lines. The hard part was having the idea in the first place.</p>
|
||
<p id="21ef" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">If you’re burning through your AI coding limits every week, you don’t need a bigger plan. You need a worker.</p>
|
||
<p id="033e" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">
|
||
<strong class="mz hp">Try It Yourself</strong>
|
||
</p>
|
||
<p id="3115" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">
|
||
The full implementation (all three tools + CLAUDE.md routing rules + setup script) is on GitHub:
|
||
<strong class="mz hp">
|
||
<em class="nz">link to be added</em>
|
||
</strong>
|
||
</p>
|
||
<p id="85e0" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">Setup takes 5 minutes:</p>
|
||
<ol class="">
|
||
<li id="ac19" class="mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu oa ob oc bg">Get an API key from any cheap model provider</li>
|
||
<li id="cff6" class="mx my ho mz b na od nc nd ne oe ng nh ni of nk nl nm og no np nq oh ns nt nu oa ob oc bg">Create a Python venv with the `openai` package</li>
|
||
<li id="c04b" class="mx my ho mz b na od nc nd ne oe ng nh ni of nk nl nm og no np nq oh ns nt nu oa ob oc bg">Drop the CLI tools in `~/bin/`</li>
|
||
<li id="36e9" class="mx my ho mz b na od nc nd ne oe ng nh ni of nk nl nm og no np nq oh ns nt nu oa ob oc bg">Add routing rules to your `CLAUDE.md`</li>
|
||
</ol>
|
||
<p id="69f9" class="pw-post-body-paragraph mx my ho mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu hh bg">That’s it. No plugins to install. No MCP servers to configure. No extensions to manage. Just scripts on your PATH and instructions in a markdown file.</p>
|
||
<figure class="pl pm pn po pp qc pz qa paragraph-image">
|
||
<div role="button" tabindex="0" class="qd qe fv qf bd qg">
|
||
<span class="ga gb gc ai gd ge gf fo gg speechify-ignore">Press enter or click to view image in full size</span>
|
||
<div class="pz qa qi">
|
||
<picture>
|
||
<source srcSet="https://miro.medium.com/v2/resize:fit:640/format:webp/1*J868m-kmZStk7WFORZ83Aw.png 640w, https://miro.medium.com/v2/resize:fit:720/format:webp/1*J868m-kmZStk7WFORZ83Aw.png 720w, https://miro.medium.com/v2/resize:fit:750/format:webp/1*J868m-kmZStk7WFORZ83Aw.png 750w, https://miro.medium.com/v2/resize:fit:786/format:webp/1*J868m-kmZStk7WFORZ83Aw.png 786w, https://miro.medium.com/v2/resize:fit:828/format:webp/1*J868m-kmZStk7WFORZ83Aw.png 828w, https://miro.medium.com/v2/resize:fit:1100/format:webp/1*J868m-kmZStk7WFORZ83Aw.png 1100w, https://miro.medium.com/v2/resize:fit:1400/format:webp/1*J868m-kmZStk7WFORZ83Aw.png 1400w" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" type="image/webp"/>
|
||
<source data-testid="og" srcSet="https://miro.medium.com/v2/resize:fit:640/1*J868m-kmZStk7WFORZ83Aw.png 640w, https://miro.medium.com/v2/resize:fit:720/1*J868m-kmZStk7WFORZ83Aw.png 720w, https://miro.medium.com/v2/resize:fit:750/1*J868m-kmZStk7WFORZ83Aw.png 750w, https://miro.medium.com/v2/resize:fit:786/1*J868m-kmZStk7WFORZ83Aw.png 786w, https://miro.medium.com/v2/resize:fit:828/1*J868m-kmZStk7WFORZ83Aw.png 828w, https://miro.medium.com/v2/resize:fit:1100/1*J868m-kmZStk7WFORZ83Aw.png 1100w, https://miro.medium.com/v2/resize:fit:1400/1*J868m-kmZStk7WFORZ83Aw.png 1400w" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px"/>
|
||
<img alt="" class="bd me qh c" width="700" height="394" loading="lazy" role="presentation"/>
|
||
</picture>
|
||
</div>
|
||
</div>
|
||
</figure>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</div>
|
||
</div>
|
||
</article>
|
||
</div>
|
||
<div class="v cf">
|
||
<div class="cm bd gt gu gv gw">
|
||
<div class="qj qk v jl">
|
||
<div class="ql v">
|
||
<a class="qm ae ai ak" rel="noopener follow" href="/tag/artificial-intelligence?source=post_page-----0344c555abda---------------------------------------" data-discover="true">
|
||
<div class="qn fv db qo gy qp qq bb b bc u bg fo">Artificial Intelligence</div>
|
||
</a>
|
||
</div>
|
||
<div class="ql v">
|
||
<a class="qm ae ai ak" rel="noopener follow" href="/tag/claude-code?source=post_page-----0344c555abda---------------------------------------" data-discover="true">
|
||
<div class="qn fv db qo gy qp qq bb b bc u bg fo">Claude Code</div>
|
||
</a>
|
||
</div>
|
||
<div class="ql v">
|
||
<a class="qm ae ai ak" rel="noopener follow" href="/tag/ai-agent?source=post_page-----0344c555abda---------------------------------------" data-discover="true">
|
||
<div class="qn fv db qo gy qp qq bb b bc u bg fo">AI Agent</div>
|
||
</a>
|
||
</div>
|
||
<div class="ql v">
|
||
<a class="qm ae ai ak" rel="noopener follow" href="/tag/programming?source=post_page-----0344c555abda---------------------------------------" data-discover="true">
|
||
<div class="qn fv db qo gy qp qq bb b bc u bg fo">Programming</div>
|
||
</a>
|
||
</div>
|
||
<div class="ql v">
|
||
<a class="qm ae ai ak" rel="noopener follow" href="/tag/software-development?source=post_page-----0344c555abda---------------------------------------" data-discover="true">
|
||
<div class="qn fv db qo gy qp qq bb b bc u bg fo">Software Development</div>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="e"></div>
|
||
<footer class="qr qs qt qu qv v j qw qx c">
|
||
<div class="e y">
|
||
<div class="v cf">
|
||
<div class="cm bd gt gu gv gw">
|
||
<div class="v ct qy">
|
||
<div class="v j ku">
|
||
<div class="qz e">
|
||
<span class="e ra rb rc rd s">
|
||
<div class="v j ku kv">
|
||
<div class="pw-multi-vote-icon fv kw kx ky kz">
|
||
<span data-dd-action-name="Susi presentation tracker clap_footer">
|
||
<a class="z ab ac fl af ag ah ai aj ak al am an ao ap" data-testid="footerClapButton" rel="noopener follow" href="/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fvote%2Fp%2F0344c555abda&operation=register&redirect=https%3A%2F%2Fmedium.com%2F%40kunalbhardwaj598%2Fi-was-burning-through-claude-codes-weekly-limit-in-3-days-here-s-how-i-fixed-it-0344c555abda&user=Kunalbhardwaj&userId=eb08f87ca727&source=---footer_actions--0344c555abda---------------------clap_footer------------------" data-discover="true">
|
||
<div>
|
||
<div class="bi" role="tooltip">
|
||
<div tabindex="-1" class="ba">
|
||
<div class="la ak lb lc ld le ai lf lg lh kz" role="presentation">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" aria-label="clap">
|
||
<path fill-rule="evenodd" d="M11.37.828 12 3.282l.63-2.454zM13.916 3.953l1.523-2.112-1.184-.39zM8.589 1.84l1.522 2.112-.337-2.501zM18.523 18.92c-.86.86-1.75 1.246-2.62 1.33a6 6 0 0 0 .407-.372c2.388-2.389 2.86-4.951 1.399-7.623l-.912-1.603-.79-1.672c-.26-.56-.194-.98.203-1.288a.7.7 0 0 1 .546-.132c.283.046.546.231.728.5l2.363 4.157c.976 1.624 1.141 4.237-1.324 6.702m-10.999-.438L3.37 14.328a.828.828 0 0 1 .585-1.408.83.83 0 0 1 .585.242l2.158 2.157a.365.365 0 0 0 .516-.516l-2.157-2.158-1.449-1.449a.826.826 0 0 1 1.167-1.17l3.438 3.44a.363.363 0 0 0 .516 0 .364.364 0 0 0 0-.516L5.293 9.513l-.97-.97a.826.826 0 0 1 0-1.166.84.84 0 0 1 1.167 0l.97.968 3.437 3.436a.36.36 0 0 0 .517 0 .366.366 0 0 0 0-.516L6.977 7.83a.82.82 0 0 1-.241-.584.82.82 0 0 1 .824-.826c.219 0 .43.087.584.242l5.787 5.787a.366.366 0 0 0 .587-.415l-1.117-2.363c-.26-.56-.194-.98.204-1.289a.7.7 0 0 1 .546-.132c.283.046.545.232.727.501l2.193 3.86c1.302 2.38.883 4.59-1.277 6.75-1.156 1.156-2.602 1.627-4.19 1.367-1.418-.236-2.866-1.033-4.079-2.246M10.75 5.971l2.12 2.12c-.41.502-.465 1.17-.128 1.89l.22.465-3.523-3.523a.8.8 0 0 1-.097-.368c0-.22.086-.428.241-.584a.847.847 0 0 1 1.167 0m7.355 1.705c-.31-.461-.746-.758-1.23-.837a1.44 1.44 0 0 0-1.11.275c-.312.24-.505.543-.59.881a1.74 1.74 0 0 0-.906-.465 1.47 1.47 0 0 0-.82.106l-2.182-2.182a1.56 1.56 0 0 0-2.2 0 1.54 1.54 0 0 0-.396.701 1.56 1.56 0 0 0-2.21-.01 1.55 1.55 0 0 0-.416.753c-.624-.624-1.649-.624-2.237-.037a1.557 1.557 0 0 0 0 2.2c-.239.1-.501.238-.715.453a1.56 1.56 0 0 0 0 2.2l.516.515a1.556 1.556 0 0 0-.753 2.615L7.01 19c1.32 1.319 2.909 2.189 4.475 2.449q.482.08.971.08c.85 0 1.653-.198 2.393-.579.231.033.46.054.686.054 1.266 0 2.457-.52 3.505-1.567 2.763-2.763 2.552-5.734 1.439-7.586z" clip-rule="evenodd"></path>
|
||
</svg>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</a>
|
||
</span>
|
||
</div>
|
||
<div class="pw-multi-vote-count e li lj lk ll lm ln lo">
|
||
<p class="bb b dz u dy">
|
||
<span class="lp">--</span>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</span>
|
||
<span class="e au re rf rg rh">
|
||
<div class="v j ku kv">
|
||
<div class="pw-multi-vote-icon fv kw kx ky kz">
|
||
<span data-dd-action-name="Susi presentation tracker clap_footer">
|
||
<a class="z ab ac fl af ag ah ai aj ak al am an ao ap" data-testid="footerClapButton" rel="noopener follow" href="/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fvote%2Fp%2F0344c555abda&operation=register&redirect=https%3A%2F%2Fmedium.com%2F%40kunalbhardwaj598%2Fi-was-burning-through-claude-codes-weekly-limit-in-3-days-here-s-how-i-fixed-it-0344c555abda&user=Kunalbhardwaj&userId=eb08f87ca727&source=---footer_actions--0344c555abda---------------------clap_footer------------------" data-discover="true">
|
||
<div>
|
||
<div class="bi" role="tooltip">
|
||
<div tabindex="-1" class="ba">
|
||
<div class="la ak lb lc ld le ai lf lg lh kz" role="presentation">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" aria-label="clap">
|
||
<path fill-rule="evenodd" d="M11.37.828 12 3.282l.63-2.454zM13.916 3.953l1.523-2.112-1.184-.39zM8.589 1.84l1.522 2.112-.337-2.501zM18.523 18.92c-.86.86-1.75 1.246-2.62 1.33a6 6 0 0 0 .407-.372c2.388-2.389 2.86-4.951 1.399-7.623l-.912-1.603-.79-1.672c-.26-.56-.194-.98.203-1.288a.7.7 0 0 1 .546-.132c.283.046.546.231.728.5l2.363 4.157c.976 1.624 1.141 4.237-1.324 6.702m-10.999-.438L3.37 14.328a.828.828 0 0 1 .585-1.408.83.83 0 0 1 .585.242l2.158 2.157a.365.365 0 0 0 .516-.516l-2.157-2.158-1.449-1.449a.826.826 0 0 1 1.167-1.17l3.438 3.44a.363.363 0 0 0 .516 0 .364.364 0 0 0 0-.516L5.293 9.513l-.97-.97a.826.826 0 0 1 0-1.166.84.84 0 0 1 1.167 0l.97.968 3.437 3.436a.36.36 0 0 0 .517 0 .366.366 0 0 0 0-.516L6.977 7.83a.82.82 0 0 1-.241-.584.82.82 0 0 1 .824-.826c.219 0 .43.087.584.242l5.787 5.787a.366.366 0 0 0 .587-.415l-1.117-2.363c-.26-.56-.194-.98.204-1.289a.7.7 0 0 1 .546-.132c.283.046.545.232.727.501l2.193 3.86c1.302 2.38.883 4.59-1.277 6.75-1.156 1.156-2.602 1.627-4.19 1.367-1.418-.236-2.866-1.033-4.079-2.246M10.75 5.971l2.12 2.12c-.41.502-.465 1.17-.128 1.89l.22.465-3.523-3.523a.8.8 0 0 1-.097-.368c0-.22.086-.428.241-.584a.847.847 0 0 1 1.167 0m7.355 1.705c-.31-.461-.746-.758-1.23-.837a1.44 1.44 0 0 0-1.11.275c-.312.24-.505.543-.59.881a1.74 1.74 0 0 0-.906-.465 1.47 1.47 0 0 0-.82.106l-2.182-2.182a1.56 1.56 0 0 0-2.2 0 1.54 1.54 0 0 0-.396.701 1.56 1.56 0 0 0-2.21-.01 1.55 1.55 0 0 0-.416.753c-.624-.624-1.649-.624-2.237-.037a1.557 1.557 0 0 0 0 2.2c-.239.1-.501.238-.715.453a1.56 1.56 0 0 0 0 2.2l.516.515a1.556 1.556 0 0 0-.753 2.615L7.01 19c1.32 1.319 2.909 2.189 4.475 2.449q.482.08.971.08c.85 0 1.653-.198 2.393-.579.231.033.46.054.686.054 1.266 0 2.457-.52 3.505-1.567 2.763-2.763 2.552-5.734 1.439-7.586z" clip-rule="evenodd"></path>
|
||
</svg>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</a>
|
||
</span>
|
||
</div>
|
||
<div class="pw-multi-vote-count e li lj lk ll lm ln lo">
|
||
<p class="bb b dz u dy">
|
||
<span class="lp">--</span>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</span>
|
||
</div>
|
||
<div class="ri v">
|
||
<div>
|
||
<div class="bi" role="tooltip">
|
||
<div tabindex="-1" class="ba">
|
||
<button class="ak la lr ls v j fw lt lu" aria-label="responses">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" class="lv">
|
||
<path d="M18.006 16.803c1.533-1.456 2.234-3.325 2.234-5.321C20.24 7.357 16.709 4 12.191 4S4 7.357 4 11.482c0 4.126 3.674 7.482 8.191 7.482.817 0 1.622-.111 2.393-.327.231.2.48.391.744.559 1.06.693 2.203 1.044 3.399 1.044.224-.008.4-.112.486-.287a.49.49 0 0 0-.042-.518c-.495-.67-.845-1.364-1.04-2.057a4 4 0 0 1-.125-.598zm-3.122 1.055-.067-.223-.315.096a8 8 0 0 1-2.311.338c-4.023 0-7.292-2.955-7.292-6.587 0-3.633 3.269-6.588 7.292-6.588 4.014 0 7.112 2.958 7.112 6.593 0 1.794-.608 3.469-2.027 4.72l-.195.168v.255c0 .056 0 .151.016.295.025.231.081.478.154.733.154.558.398 1.117.722 1.659a5.3 5.3 0 0 1-2.165-.845c-.276-.176-.714-.383-.941-.59z"></path>
|
||
</svg>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="v j">
|
||
<div class="rj e bx">
|
||
<div>
|
||
<div class="bi" role="tooltip">
|
||
<div tabindex="-1" class="ba">
|
||
<span data-dd-action-name="Susi presentation tracker bookmark_footer">
|
||
<a class="z ab ac fl af ag ah ai aj ak al am an ao ap" data-testid="footerBookmarkButton" rel="noopener follow" href="/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2F0344c555abda&operation=register&redirect=https%3A%2F%2Fmedium.com%2F%40kunalbhardwaj598%2Fi-was-burning-through-claude-codes-weekly-limit-in-3-days-here-s-how-i-fixed-it-0344c555abda&source=---footer_actions--0344c555abda---------------------bookmark_footer------------------" data-discover="true">
|
||
<span class="">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="none" viewBox="0 0 25 25" class="dy lx" aria-label="Add to list bookmark button">
|
||
<path fill="currentColor" d="M18 2.5a.5.5 0 0 1 1 0V5h2.5a.5.5 0 0 1 0 1H19v2.5a.5.5 0 1 1-1 0V6h-2.5a.5.5 0 0 1 0-1H18zM7 7a1 1 0 0 1 1-1h3.5a.5.5 0 0 0 0-1H8a2 2 0 0 0-2 2v14a.5.5 0 0 0 .805.396L12.5 17l5.695 4.396A.5.5 0 0 0 19 21v-8.5a.5.5 0 0 0-1 0v7.485l-5.195-4.012a.5.5 0 0 0-.61 0L7 19.985z"></path>
|
||
</svg>
|
||
</span>
|
||
</a>
|
||
</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="rj e bx">
|
||
<div class="bi" aria-describedby="postFooterSocialMenu" aria-labelledby="postFooterSocialMenu">
|
||
<div>
|
||
<div class="bi" role="tooltip">
|
||
<div tabindex="-1" class="ba">
|
||
<button aria-controls="postFooterSocialMenu" aria-expanded="false" aria-label="Share Post" data-testid="footerSocialShareButton" class="z fw ac fl af ag ah mf aj ak al fb mg mh lu mi">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24">
|
||
<path fill="currentColor" fill-rule="evenodd" d="M15.218 4.931a.4.4 0 0 1-.118.132l.012.006a.45.45 0 0 1-.292.074.5.5 0 0 1-.3-.13l-2.02-2.02v7.07c0 .28-.23.5-.5.5s-.5-.22-.5-.5v-7.04l-2 2a.45.45 0 0 1-.57.04h-.02a.4.4 0 0 1-.16-.3.4.4 0 0 1 .1-.32l2.8-2.8a.5.5 0 0 1 .7 0l2.8 2.79a.42.42 0 0 1 .068.498m-.106.138.008.004v-.01zM16 7.063h1.5a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-11c-1.1 0-2-.9-2-2v-10a2 2 0 0 1 2-2H8a.5.5 0 0 1 .35.15.5.5 0 0 1 .15.35.5.5 0 0 1-.15.35.5.5 0 0 1-.35.15H6.4c-.5 0-.9.4-.9.9v10.2a.9.9 0 0 0 .9.9h11.2c.5 0 .9-.4.9-.9v-10.2c0-.5-.4-.9-.9-.9H16a.5.5 0 0 1 0-1" clip-rule="evenodd"></path>
|
||
</svg>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
<div class="rk e">
|
||
<div class="v cf">
|
||
<div class="cm bd gt gu gv gw">
|
||
<div class="v iy iw iu rl rm">
|
||
<div class="rn ro rp rq rr rs rt ru rv rw v ct">
|
||
<div class="au bt">
|
||
<a tabindex="0" rel="noopener follow" href="/@kunalbhardwaj598?source=post_page---post_author_info--0344c555abda---------------------------------------" data-discover="true">
|
||
<div class="e fv">
|
||
<img alt="Kunalbhardwaj" class="e fh bu rx ry db" src="https://miro.medium.com/v2/resize:fill:96:96/0*B_H6FgNfG5N9tYAJ" width="48" height="48" loading="lazy"/>
|
||
<div class="gm bu e rx ry ga g ae rz"></div>
|
||
</div>
|
||
</a>
|
||
</div>
|
||
<div class="by r s">
|
||
<a tabindex="0" rel="noopener follow" href="/@kunalbhardwaj598?source=post_page---post_author_info--0344c555abda---------------------------------------" data-discover="true">
|
||
<div class="e fv">
|
||
<img alt="Kunalbhardwaj" class="e fh bu sa sb db" src="https://miro.medium.com/v2/resize:fill:128:128/0*B_H6FgNfG5N9tYAJ" width="64" height="64" loading="lazy"/>
|
||
<div class="gm bu e sa sb ga g ae rz"></div>
|
||
</div>
|
||
</a>
|
||
</div>
|
||
<div class="by r s sc bx">
|
||
<div class="v"></div>
|
||
</div>
|
||
</div>
|
||
<div class="v cs ca">
|
||
<div class="sd se sf sg sh e">
|
||
<a class="z ab ac af ag ah ai aj ak al am an ao ap v j" rel="noopener follow" href="/@kunalbhardwaj598?source=post_page---post_author_info--0344c555abda---------------------------------------" data-discover="true">
|
||
<h2 class="pw-author-name bb sj sk sl sm sn so sp ni sq sr nm ss st nq su sv bg">
|
||
<span class="hh si">Written by
|
||
<!-- -->
|
||
Kunalbhardwaj</span>
|
||
</h2>
|
||
</a>
|
||
<div class="ql v ja">
|
||
<div class="e bx">
|
||
<span class="pw-follower-count bb b bc u dy">0 followers</span>
|
||
</div>
|
||
<div class="bb b bc u dy v sw">
|
||
<span class="sx e" aria-hidden="true">
|
||
<span class="bb b bc u dy">·</span>
|
||
</span>
|
||
<a class="z ab ac fl af ag ah ai aj ak al am an jj" rel="noopener follow" href="/@kunalbhardwaj598/following?source=post_page---post_author_info--0344c555abda---------------------------------------" data-discover="true">1 following</a>
|
||
</div>
|
||
</div>
|
||
<div class="sy e"></div>
|
||
</div>
|
||
</div>
|
||
<div class="au bt">
|
||
<div class="v"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div>
|
||
<div class="sz e">
|
||
<div class="ta bd k rk"></div>
|
||
<div class="v cf">
|
||
<div class="cm bd gt gu gv gw">
|
||
<div class="v j ct">
|
||
<h2 class="bb sj ol on oo op or os ot ov ow ox oz pa pb pd pe bg">No responses yet</h2>
|
||
<div class="v tb">
|
||
<div>
|
||
<div class="bi" role="tooltip">
|
||
<div tabindex="-1" class="ba">
|
||
<a class="tc td" href="https://policy.medium.com/medium-rules-30e5502c4eb4?source=post_page---post_responses--0344c555abda---------------------------------------" rel="noopener follow" target="_blank">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" aria-label="Shield with a checkmark" viewBox="0 0 25 25">
|
||
<path fill-rule="evenodd" d="M11.987 5.036a.754.754 0 0 1 .914-.01c.972.721 1.767 1.218 2.6 1.543.828.322 1.719.485 2.887.505a.755.755 0 0 1 .741.757c-.018 3.623-.43 6.256-1.449 8.21-1.034 1.984-2.662 3.209-4.966 4.083a.75.75 0 0 1-.537-.003c-2.243-.874-3.858-2.095-4.897-4.074-1.024-1.951-1.457-4.583-1.476-8.216a.755.755 0 0 1 .741-.757c1.195-.02 2.1-.182 2.923-.503.827-.322 1.6-.815 2.519-1.535m.468.903c-.897.69-1.717 1.21-2.623 1.564-.898.35-1.856.527-3.026.565.037 3.45.469 5.817 1.36 7.515.884 1.684 2.25 2.762 4.284 3.571 2.092-.81 3.465-1.89 4.344-3.575.886-1.698 1.299-4.065 1.334-7.512-1.149-.039-2.091-.217-2.99-.567-.906-.353-1.745-.873-2.683-1.561m-.009 9.155a2.672 2.672 0 1 0 0-5.344 2.672 2.672 0 0 0 0 5.344m0 1a3.672 3.672 0 1 0 0-7.344 3.672 3.672 0 0 0 0 7.344m-1.813-3.777.525-.526.916.917 1.623-1.625.526.526-2.149 2.152z" clip-rule="evenodd"></path>
|
||
</svg>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="te tf tg th ti e"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div>
|
||
<div class="tj tk de df dg e">
|
||
<div class="ta bd k tl tm gq gr gs"></div>
|
||
<div class="v cf">
|
||
<div class="cm bd gt gu gv gw">
|
||
<div class="dt tn to e db"></div>
|
||
<div class="tn tp e db"></div>
|
||
<div class="tq v tr">
|
||
<div class="ts aw e db"></div>
|
||
<div class="ts aw e db"></div>
|
||
</div>
|
||
<div class="tt tn ry e db"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="tu tv tw tx ty e bs">
|
||
<div>
|
||
<div class="v cf">
|
||
<div class="cm bd gt gu gv gw">
|
||
<div class="tz v ku jl ua ub uc ud ue uf ug uh ui uj uk ul um un uo">
|
||
<div class="up uq ur sh us ut uu sg uv uw ux uy uz va vb vc vd ve vf vg vh">
|
||
<div class="tt vi bd e db"></div>
|
||
<div class="cp bv vj e db"></div>
|
||
<div class="dt dl vk e db"></div>
|
||
<div class="dt dl vl e db"></div>
|
||
<div class="vm dl vn e db"></div>
|
||
</div>
|
||
<div class="up uq ur sh us ut uu sg uv uw ux uy uz va vb vc vd ve vf vg vh">
|
||
<div class="tt vi bd e db"></div>
|
||
<div class="cp bv vj e db"></div>
|
||
<div class="dt dl vk e db"></div>
|
||
<div class="dt dl vl e db"></div>
|
||
<div class="vm dl vn e db"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div>
|
||
<div class="v cf">
|
||
<div class="cm bd gt gu gv gw">
|
||
<div class="tz v ku jl ua ub uc ud ue uf ug uh ui uj uk ul um un uo">
|
||
<div class="up uq ur sh us ut uu sg uv uw ux uy uz va vb vc vd ve vf vg vh">
|
||
<div class="tt vi bd e db"></div>
|
||
<div class="cp bv vj e db"></div>
|
||
<div class="dt dl vk e db"></div>
|
||
<div class="dt dl vl e db"></div>
|
||
<div class="vm dl vn e db"></div>
|
||
</div>
|
||
<div class="up uq ur sh us ut uu sg uv uw ux uy uz va vb vc vd ve vf vg vh">
|
||
<div class="tt vi bd e db"></div>
|
||
<div class="cp bv vj e db"></div>
|
||
<div class="dt dl vk e db"></div>
|
||
<div class="dt dl vl e db"></div>
|
||
<div class="vm dl vn e db"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="au bt by">
|
||
<div class="ta bd vo vp"></div>
|
||
<div class="v cf">
|
||
<div class="cm bd gt gu gv gw">
|
||
<div class="vq v ku jl">
|
||
<div class="vr vs e">
|
||
<a class="z ab ac fl af ag ah ai aj ak al am an ao ap" href="https://help.medium.com/hc/en-us?source=post_page-----0344c555abda---------------------------------------" rel="noopener follow">
|
||
<p class="bb b dz u dy">Help</p>
|
||
</a>
|
||
</div>
|
||
<div class="vr vs e">
|
||
<a class="z ab ac fl af ag ah ai aj ak al am an ao ap" href="https://status.medium.com/?source=post_page-----0344c555abda---------------------------------------" rel="noopener follow">
|
||
<p class="bb b dz u dy">Status</p>
|
||
</a>
|
||
</div>
|
||
<div class="vr vs e">
|
||
<a class="z ab ac fl af ag ah ai aj ak al am an ao ap" rel="noopener follow" href="/about?autoplay=1&source=post_page-----0344c555abda---------------------------------------" data-discover="true">
|
||
<p class="bb b dz u dy">About</p>
|
||
</a>
|
||
</div>
|
||
<div class="vr vs e">
|
||
<a class="z ab ac fl af ag ah ai aj ak al am an ao ap" rel="noopener follow" href="/jobs-at-medium/work-at-medium-959d1a85284e?source=post_page-----0344c555abda---------------------------------------" data-discover="true">
|
||
<p class="bb b dz u dy">Careers</p>
|
||
</a>
|
||
</div>
|
||
<div class="vr vs e">
|
||
<a class="z ab ac fl af ag ah ai aj ak al am an ao ap" href="mailto:pressinquiries@medium.com" rel="noopener follow">
|
||
<p class="bb b dz u dy">Press</p>
|
||
</a>
|
||
</div>
|
||
<div class="vr vs e">
|
||
<a class="z ab ac fl af ag ah ai aj ak al am an ao ap" href="https://blog.medium.com/?source=post_page-----0344c555abda---------------------------------------" rel="noopener follow">
|
||
<p class="bb b dz u dy">Blog</p>
|
||
</a>
|
||
</div>
|
||
<div class="vr vs e">
|
||
<a class="z ab ac fl af ag ah ai aj ak al am an ao ap" href="https://policy.medium.com/medium-privacy-policy-f03bf92035c9?source=post_page-----0344c555abda---------------------------------------" rel="noopener follow">
|
||
<p class="bb b dz u dy">Privacy</p>
|
||
</a>
|
||
</div>
|
||
<div class="vr vs e">
|
||
<a class="z ab ac fl af ag ah ai aj ak al am an ao ap" href="https://policy.medium.com/medium-rules-30e5502c4eb4?source=post_page-----0344c555abda---------------------------------------" rel="noopener follow">
|
||
<p class="bb b dz u dy">Rules</p>
|
||
</a>
|
||
</div>
|
||
<div class="vr vs e">
|
||
<a class="z ab ac fl af ag ah ai aj ak al am an ao ap" href="https://policy.medium.com/medium-terms-of-service-9db0094a1e0f?source=post_page-----0344c555abda---------------------------------------" rel="noopener follow">
|
||
<p class="bb b dz u dy">Terms</p>
|
||
</a>
|
||
</div>
|
||
<div class="vr e">
|
||
<a class="z ab ac fl af ag ah ai aj ak al am an ao ap" href="https://speechify.com/medium?source=post_page-----0344c555abda---------------------------------------" rel="noopener follow">
|
||
<p class="bb b dz u dy">Text to speech</p>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<script>
|
||
window.__BUILD_ID__ = "main-20260501-162335-360c880c12"
|
||
</script>
|
||
<script>
|
||
window.__GRAPHQL_URI__ = "https://medium.com/_/graphql"
|
||
</script>
|
||
<script>
|
||
window.__PRELOADED_STATE__ = {
|
||
"algolia": {
|
||
"queries": {}
|
||
},
|
||
"cache": {
|
||
"experimentGroupSet": true,
|
||
"reason": "",
|
||
"group": "enabled",
|
||
"tags": ["group-edgeCachePosts", "post-0344c555abda", "user-eb08f87ca727"],
|
||
"serverVariantState": "44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a",
|
||
"middlewareEnabled": true,
|
||
"cacheStatus": "DYNAMIC",
|
||
"shouldUseCache": true,
|
||
"vary": [],
|
||
"pubFeaturingPostPageLabelEnabled": false,
|
||
"shouldFollowPostQueryEnabled": false,
|
||
"repostEnabled": "control",
|
||
"enableDarkModeV0": false
|
||
},
|
||
"client": {
|
||
"hydrated": false,
|
||
"isUs": false,
|
||
"isNativeMedium": false,
|
||
"isSafariMobile": false,
|
||
"isSafari": false,
|
||
"isFirefox": true,
|
||
"routingEntity": {
|
||
"type": "DEFAULT",
|
||
"explicit": false
|
||
},
|
||
"viewerIsBot": false
|
||
},
|
||
"debug": {
|
||
"requestId": "b0978318-df39-46b2-a83f-3dc28d0bcf78",
|
||
"requestTag": "",
|
||
"hybridDevServices": [],
|
||
"originalSpanCarrier": {
|
||
"traceparent": "00-047d8f8ceba0831ecd37da9cd90e4250-c803995214f38598-01"
|
||
}
|
||
},
|
||
"multiVote": {
|
||
"clapsPerPost": {}
|
||
},
|
||
"navigation": {
|
||
"hideGoogleOneTap": false,
|
||
"hasRenderedAlternateUserBanner": null,
|
||
"currentLocation": "https:\u002F\u002Fmedium.com\u002F@kunalbhardwaj598\u002Fi-was-burning-through-claude-codes-weekly-limit-in-3-days-here-s-how-i-fixed-it-0344c555abda",
|
||
"host": "medium.com",
|
||
"hostname": "medium.com",
|
||
"referrer": "",
|
||
"hasSetReferrer": false,
|
||
"susiModal": {
|
||
"step": null,
|
||
"operation": "register",
|
||
"rememberMe": true
|
||
},
|
||
"postRead": false,
|
||
"paymentFunnel": {},
|
||
"partnerProgram": {
|
||
"selectedCountryCode": null
|
||
},
|
||
"staticRouterContext": {
|
||
"route": {
|
||
"name": "ShowPostUnderUser"
|
||
},
|
||
"statusCode": 200
|
||
},
|
||
"toastQueue": [],
|
||
"currentToast": null,
|
||
"queryString": "",
|
||
"currentHash": ""
|
||
},
|
||
"config": {
|
||
"nodeEnv": "production",
|
||
"version": "main-20260501-162335-360c880c12",
|
||
"target": "production",
|
||
"productName": "Medium",
|
||
"publicUrl": "https:\u002F\u002Fcdn-client.medium.com\u002Flite",
|
||
"authDomain": "medium.com",
|
||
"authGoogleClientId": "216296035834-k1k6qe060s2tp2a2jam4ljdcms00sttg.apps.googleusercontent.com",
|
||
"favicon": "production",
|
||
"iosAppId": "828256236",
|
||
"glyphUrl": "https:\u002F\u002Fglyph.medium.com",
|
||
"branchKey": "key_live_ofxXr2qTrrU9NqURK8ZwEhknBxiI6KBm",
|
||
"algolia": {
|
||
"appId": "MQ57UUUQZ2",
|
||
"apiKeySearch": "394474ced050e3911ae2249ecc774921",
|
||
"indexPrefix": "medium_",
|
||
"host": "-dsn.algolia.net"
|
||
},
|
||
"recaptchaKey": "6Lfc37IUAAAAAKGGtC6rLS13R1Hrw_BqADfS1LRk",
|
||
"recaptcha3Key": "6Lf8R9wUAAAAABMI_85Wb8melS7Zj6ziuf99Yot5",
|
||
"recaptchaEnterpriseKeyId": "6Le-uGgpAAAAAPprRaokM8AKthQ9KNGdoxaGUvVp",
|
||
"datadog": {
|
||
"applicationId": "6702d87d-a7e0-42fe-bbcb-95b469547ea0",
|
||
"clientToken": "pub853ea8d17ad6821d9f8f11861d23dfed",
|
||
"rumToken": "pubf9cc52896502b9413b68ba36fc0c7162",
|
||
"context": {
|
||
"deployment": {
|
||
"target": "production",
|
||
"tag": "main-20260501-162335-360c880c12",
|
||
"commit": "360c880c12498944f6efa374f15a5a175c854ba7"
|
||
}
|
||
},
|
||
"datacenter": "us"
|
||
},
|
||
"googleAdsCode": "AW-17106321204",
|
||
"googleAnalyticsCode": "G-7JY7T788PK",
|
||
"googlePay": {
|
||
"apiVersion": "2",
|
||
"apiVersionMinor": "0",
|
||
"merchantId": "BCR2DN6TV7EMTGBM",
|
||
"merchantName": "Medium",
|
||
"instanceMerchantId": "13685562959212738550"
|
||
},
|
||
"applePay": {
|
||
"version": 3
|
||
},
|
||
"signInWallCustomDomainCollectionIds": ["3a8144eabfe3", "336d898217ee", "61061eb0c96b", "138adf9c44c", "819cc2aaeee0"],
|
||
"mediumMastodonDomainName": "me.dm",
|
||
"mediumOwnedAndOperatedCollectionIds": ["8a9336e5bb4", "b7e45b22fec3", "193b68bd4fba", "8d6b8a439e32", "54c98c43354d", "3f6ecf56618", "d944778ce714", "92d2092dc598", "ae2a65f35510", "1285ba81cada", "544c7006046e", "fc8964313712", "40187e704f1c", "88d9857e584e", "7b6769f2748b", "bcc38c8f6edf", "cef6983b292", "cb8577c9149e", "444d13b52878", "713d7dbc99b0", "ef8e90590e66", "191186aaafa0", "55760f21cdc5", "9dc80918cc93", "bdc4052bbdba", "8ccfed20cbb2"],
|
||
"tierOneDomains": ["medium.com", "thebolditalic.com", "arcdigital.media", "towardsdatascience.com", "uxdesign.cc", "codeburst.io", "psiloveyou.xyz", "writingcooperative.com", "entrepreneurshandbook.co", "prototypr.io", "betterhumans.coach.me", "theascent.pub"],
|
||
"topicsToFollow": ["d61cf867d93f", "8a146bc21b28", "1eca0103fff3", "4d562ee63426", "aef1078a3ef5", "e15e46793f8d", "6158eb913466", "55f1c20aba7a", "3d18b94f6858", "4861fee224fd", "63c6f1f93ee", "1d98b3a9a871", "decb52b64abf", "ae5d4995e225", "830cded25262"],
|
||
"topicToTagMappings": {
|
||
"accessibility": "accessibility",
|
||
"addiction": "addiction",
|
||
"android-development": "android-development",
|
||
"art": "art",
|
||
"artificial-intelligence": "artificial-intelligence",
|
||
"astrology": "astrology",
|
||
"basic-income": "basic-income",
|
||
"beauty": "beauty",
|
||
"biotech": "biotech",
|
||
"blockchain": "blockchain",
|
||
"books": "books",
|
||
"business": "business",
|
||
"cannabis": "cannabis",
|
||
"cities": "cities",
|
||
"climate-change": "climate-change",
|
||
"comics": "comics",
|
||
"coronavirus": "coronavirus",
|
||
"creativity": "creativity",
|
||
"cryptocurrency": "cryptocurrency",
|
||
"culture": "culture",
|
||
"cybersecurity": "cybersecurity",
|
||
"data-science": "data-science",
|
||
"design": "design",
|
||
"digital-life": "digital-life",
|
||
"disability": "disability",
|
||
"economy": "economy",
|
||
"education": "education",
|
||
"equality": "equality",
|
||
"family": "family",
|
||
"feminism": "feminism",
|
||
"fiction": "fiction",
|
||
"film": "film",
|
||
"fitness": "fitness",
|
||
"food": "food",
|
||
"freelancing": "freelancing",
|
||
"future": "future",
|
||
"gadgets": "gadgets",
|
||
"gaming": "gaming",
|
||
"gun-control": "gun-control",
|
||
"health": "health",
|
||
"history": "history",
|
||
"humor": "humor",
|
||
"immigration": "immigration",
|
||
"ios-development": "ios-development",
|
||
"javascript": "javascript",
|
||
"justice": "justice",
|
||
"language": "language",
|
||
"leadership": "leadership",
|
||
"lgbtqia": "lgbtqia",
|
||
"lifestyle": "lifestyle",
|
||
"machine-learning": "machine-learning",
|
||
"makers": "makers",
|
||
"marketing": "marketing",
|
||
"math": "math",
|
||
"media": "media",
|
||
"mental-health": "mental-health",
|
||
"mindfulness": "mindfulness",
|
||
"money": "money",
|
||
"music": "music",
|
||
"neuroscience": "neuroscience",
|
||
"nonfiction": "nonfiction",
|
||
"outdoors": "outdoors",
|
||
"parenting": "parenting",
|
||
"pets": "pets",
|
||
"philosophy": "philosophy",
|
||
"photography": "photography",
|
||
"podcasts": "podcast",
|
||
"poetry": "poetry",
|
||
"politics": "politics",
|
||
"privacy": "privacy",
|
||
"product-management": "product-management",
|
||
"productivity": "productivity",
|
||
"programming": "programming",
|
||
"psychedelics": "psychedelics",
|
||
"psychology": "psychology",
|
||
"race": "race",
|
||
"relationships": "relationships",
|
||
"religion": "religion",
|
||
"remote-work": "remote-work",
|
||
"san-francisco": "san-francisco",
|
||
"science": "science",
|
||
"self": "self",
|
||
"self-driving-cars": "self-driving-cars",
|
||
"sexuality": "sexuality",
|
||
"social-media": "social-media",
|
||
"society": "society",
|
||
"software-engineering": "software-engineering",
|
||
"space": "space",
|
||
"spirituality": "spirituality",
|
||
"sports": "sports",
|
||
"startups": "startup",
|
||
"style": "style",
|
||
"technology": "technology",
|
||
"transportation": "transportation",
|
||
"travel": "travel",
|
||
"true-crime": "true-crime",
|
||
"tv": "tv",
|
||
"ux": "ux",
|
||
"venture-capital": "venture-capital",
|
||
"visual-design": "visual-design",
|
||
"work": "work",
|
||
"world": "world",
|
||
"writing": "writing"
|
||
},
|
||
"defaultImages": {
|
||
"avatar": {
|
||
"imageId": "1*dmbNkD5D-u45r44go_cf0g.png",
|
||
"height": 150,
|
||
"width": 150
|
||
},
|
||
"orgLogo": {
|
||
"imageId": "7*V1_7XP4snlmqrc_0Njontw.png",
|
||
"height": 110,
|
||
"width": 500
|
||
},
|
||
"postLogo": {
|
||
"imageId": "167cff2a3d17ac1e64d0762539978f2d54c0058886e8b3c8a03a725a83012ec0",
|
||
"height": 630,
|
||
"width": 1200
|
||
},
|
||
"postPreviewImage": {
|
||
"imageId": "bc1f8416df0cad099e43cda2872716e5864f18a73bda2a7547ea082aca9b5632",
|
||
"height": 630,
|
||
"width": 1200
|
||
}
|
||
},
|
||
"embeddedPostIds": {
|
||
"coronavirus": "cd3010f9d81f"
|
||
},
|
||
"sharedCdcMessaging": {
|
||
"COVID_APPLICABLE_TAG_SLUGS": [],
|
||
"COVID_APPLICABLE_TOPIC_NAMES": [],
|
||
"COVID_APPLICABLE_TOPIC_NAMES_FOR_TOPIC_PAGE": [],
|
||
"COVID_MESSAGES": {
|
||
"tierA": {
|
||
"text": "For more information on the novel coronavirus and Covid-19, visit cdc.gov.",
|
||
"markups": [{
|
||
"start": 66,
|
||
"end": 73,
|
||
"href": "https:\u002F\u002Fwww.cdc.gov\u002Fcoronavirus\u002F2019-nCoV"
|
||
}]
|
||
},
|
||
"tierB": {
|
||
"text": "Anyone can publish on Medium per our Policies, but we don’t fact-check every story. For more info about the coronavirus, see cdc.gov.",
|
||
"markups": [{
|
||
"start": 37,
|
||
"end": 45,
|
||
"href": "https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Fcategories\u002F201931128-Policies-Safety"
|
||
}, {
|
||
"start": 125,
|
||
"end": 132,
|
||
"href": "https:\u002F\u002Fwww.cdc.gov\u002Fcoronavirus\u002F2019-nCoV"
|
||
}]
|
||
},
|
||
"paywall": {
|
||
"text": "This article has been made free for everyone, thanks to Medium Members. For more information on the novel coronavirus and Covid-19, visit cdc.gov.",
|
||
"markups": [{
|
||
"start": 56,
|
||
"end": 70,
|
||
"href": "https:\u002F\u002Fmedium.com\u002Fmembership"
|
||
}, {
|
||
"start": 138,
|
||
"end": 145,
|
||
"href": "https:\u002F\u002Fwww.cdc.gov\u002Fcoronavirus\u002F2019-nCoV"
|
||
}]
|
||
},
|
||
"unbound": {
|
||
"text": "This article is free for everyone, thanks to Medium Members. For more information on the novel coronavirus and Covid-19, visit cdc.gov.",
|
||
"markups": [{
|
||
"start": 45,
|
||
"end": 59,
|
||
"href": "https:\u002F\u002Fmedium.com\u002Fmembership"
|
||
}, {
|
||
"start": 127,
|
||
"end": 134,
|
||
"href": "https:\u002F\u002Fwww.cdc.gov\u002Fcoronavirus\u002F2019-nCoV"
|
||
}]
|
||
}
|
||
},
|
||
"COVID_BANNER_POST_ID_OVERRIDE_WHITELIST": ["3b31a67bff4a"]
|
||
},
|
||
"sharedVoteMessaging": {
|
||
"TAGS": ["politics", "election-2020", "government", "us-politics", "election", "2020-presidential-race", "trump", "donald-trump", "democrats", "republicans", "congress", "republican-party", "democratic-party", "biden", "joe-biden", "maga"],
|
||
"TOPICS": ["politics", "election"],
|
||
"MESSAGE": {
|
||
"text": "Find out more about the U.S. election results here.",
|
||
"markups": [{
|
||
"start": 46,
|
||
"end": 50,
|
||
"href": "https:\u002F\u002Fcookpolitical.com\u002F2020-national-popular-vote-tracker"
|
||
}]
|
||
},
|
||
"EXCLUDE_POSTS": ["397ef29e3ca5"]
|
||
},
|
||
"embedPostRules": [],
|
||
"recircOptions": {
|
||
"v1": {
|
||
"limit": 3
|
||
},
|
||
"v2": {
|
||
"limit": 8
|
||
}
|
||
},
|
||
"braintreeClientKey": "production_zjkj96jm_m56f8fqpf7ngnrd4",
|
||
"braintree": {
|
||
"enabled": true,
|
||
"merchantId": "m56f8fqpf7ngnrd4",
|
||
"merchantAccountId": {
|
||
"usd": "AMediumCorporation_instant",
|
||
"eur": "amediumcorporation_EUR",
|
||
"cad": "amediumcorporation_CAD"
|
||
},
|
||
"publicKey": "ds2nn34bg2z7j5gd",
|
||
"braintreeEnvironment": "production",
|
||
"dashboardUrl": "https:\u002F\u002Fwww.braintreegateway.com\u002Fmerchants",
|
||
"gracePeriodDurationInDays": 14,
|
||
"mediumMembershipPlanId": {
|
||
"monthly": "ce105f8c57a3",
|
||
"monthlyV2": "e8a5e126-792b-4ee6-8fba-d574c1b02fc5",
|
||
"monthlyWithTrial": "d5ee3dbe3db8",
|
||
"monthlyPremium": "fa741a9b47a2",
|
||
"yearly": "a40ad4a43185",
|
||
"yearlyV2": "3815d7d6-b8ca-4224-9b8c-182f9047866e",
|
||
"yearlyStaff": "d74fb811198a",
|
||
"yearlyWithTrial": "b3bc7350e5c7",
|
||
"yearlyPremium": "e21bd2c12166",
|
||
"monthlyOneYearFree": "e6c0637a-2bad-4171-ab4f-3c268633d83c",
|
||
"monthly25PercentOffFirstYear": "235ecc62-0cdb-49ae-9378-726cd21c504b",
|
||
"monthly20PercentOffFirstYear": "ba518864-9c13-4a99-91ca-411bf0cac756",
|
||
"monthly15PercentOffFirstYear": "594c029b-9f89-43d5-88f8-8173af4e070e",
|
||
"monthly10PercentOffFirstYear": "c6c7bc9a-40f2-4b51-8126-e28511d5bdb0",
|
||
"monthlyForStudents": "629ebe51-da7d-41fd-8293-34cd2f2030a8",
|
||
"yearlyOneYearFree": "78ba7be9-0d9f-4ece-aa3e-b54b826f2bf1",
|
||
"yearly25PercentOffFirstYear": "2dbb010d-bb8f-4eeb-ad5c-a08509f42d34",
|
||
"yearly20PercentOffFirstYear": "47565488-435b-47f8-bf93-40d5fbe0ebc8",
|
||
"yearly15PercentOffFirstYear": "8259809b-0881-47d9-acf7-6c001c7f720f",
|
||
"yearly10PercentOffFirstYear": "9dd694fb-96e1-472c-8d9e-3c868d5c1506",
|
||
"yearlyForStudents": "e29345ef-ab1c-4234-95c5-70e50fe6bc23",
|
||
"monthlyCad": "p52orjkaceei",
|
||
"yearlyCad": "h4q9g2up9ktt"
|
||
},
|
||
"braintreeDiscountId": {
|
||
"oneMonthFree": "MONTHS_FREE_01",
|
||
"threeMonthsFree": "MONTHS_FREE_03",
|
||
"sixMonthsFree": "MONTHS_FREE_06",
|
||
"fiftyPercentOffOneYear": "FIFTY_PERCENT_OFF_ONE_YEAR"
|
||
},
|
||
"3DSecureVersion": "2",
|
||
"defaultCurrency": "usd",
|
||
"providerPlanIdCurrency": {
|
||
"4ycw": "usd",
|
||
"rz3b": "usd",
|
||
"3kqm": "usd",
|
||
"jzw6": "usd",
|
||
"c2q2": "usd",
|
||
"nnsw": "usd",
|
||
"q8qw": "usd",
|
||
"d9y6": "usd",
|
||
"fx7w": "cad",
|
||
"nwf2": "cad"
|
||
}
|
||
},
|
||
"paypalClientId": "AXj1G4fotC2GE8KzWX9mSxCH1wmPE3nJglf4Z2ig_amnhvlMVX87otaq58niAg9iuLktVNF_1WCMnN7v",
|
||
"paypal": {
|
||
"host": "https:\u002F\u002Fapi.paypal.com:443",
|
||
"clientMode": "production",
|
||
"serverMode": "live",
|
||
"webhookId": "4G466076A0294510S",
|
||
"monthlyPlan": {
|
||
"planId": "P-9WR0658853113943TMU5FDQA",
|
||
"name": "Medium Membership (Monthly) with setup fee",
|
||
"description": "Unlimited access to the best and brightest stories on Medium. Membership billed monthly."
|
||
},
|
||
"yearlyPlan": {
|
||
"planId": "P-7N8963881P8875835MU5JOPQ",
|
||
"name": "Medium Membership (Annual) with setup fee",
|
||
"description": "Unlimited access to the best and brightest stories on Medium. Membership billed annually."
|
||
},
|
||
"oneYearGift": {
|
||
"name": "Medium Membership (1 Year, Digital Gift Code)",
|
||
"description": "Unlimited access to the best and brightest stories on Medium. Gift codes can be redeemed at medium.com\u002Fredeem.",
|
||
"price": "50.00",
|
||
"currency": "USD",
|
||
"sku": "membership-gift-1-yr"
|
||
},
|
||
"oldMonthlyPlan": {
|
||
"planId": "P-96U02458LM656772MJZUVH2Y",
|
||
"name": "Medium Membership (Monthly)",
|
||
"description": "Unlimited access to the best and brightest stories on Medium. Membership billed monthly."
|
||
},
|
||
"oldYearlyPlan": {
|
||
"planId": "P-59P80963JF186412JJZU3SMI",
|
||
"name": "Medium Membership (Annual)",
|
||
"description": "Unlimited access to the best and brightest stories on Medium. Membership billed annually."
|
||
},
|
||
"monthlyPlanWithTrial": {
|
||
"planId": "P-66C21969LR178604GJPVKUKY",
|
||
"name": "Medium Membership (Monthly) with setup fee",
|
||
"description": "Unlimited access to the best and brightest stories on Medium. Membership billed monthly."
|
||
},
|
||
"yearlyPlanWithTrial": {
|
||
"planId": "P-6XW32684EX226940VKCT2MFA",
|
||
"name": "Medium Membership (Annual) with setup fee",
|
||
"description": "Unlimited access to the best and brightest stories on Medium. Membership billed annually."
|
||
},
|
||
"oldMonthlyPlanNoSetupFee": {
|
||
"planId": "P-4N046520HR188054PCJC7LJI",
|
||
"name": "Medium Membership (Monthly)",
|
||
"description": "Unlimited access to the best and brightest stories on Medium. Membership billed monthly."
|
||
},
|
||
"oldYearlyPlanNoSetupFee": {
|
||
"planId": "P-7A4913502Y5181304CJEJMXQ",
|
||
"name": "Medium Membership (Annual)",
|
||
"description": "Unlimited access to the best and brightest stories on Medium. Membership billed annually."
|
||
},
|
||
"sdkUrl": "https:\u002F\u002Fwww.paypal.com\u002Fsdk\u002Fjs"
|
||
},
|
||
"stripePublishableKey": "pk_live_7FReX44VnNIInZwrIIx6ghjl",
|
||
"log": {
|
||
"json": true,
|
||
"level": "info"
|
||
},
|
||
"imageUploadMaxSizeMb": 25,
|
||
"staffPicks": {
|
||
"title": "Staff Picks",
|
||
"catalogId": "c7bc6e1ee00f"
|
||
}
|
||
},
|
||
"session": {
|
||
"xsrf": ""
|
||
}
|
||
}
|
||
</script>
|
||
<script>
|
||
window.__APOLLO_STATE__ = {
|
||
"ROOT_QUERY": {
|
||
"__typename": "Query",
|
||
"viewer": null,
|
||
"collectionByDomainOrSlug({\"domainOrSlug\":\"medium.com\"})": null,
|
||
"postResult({\"id\":\"0344c555abda\"})": {
|
||
"__ref": "Post:0344c555abda"
|
||
}
|
||
},
|
||
"LinkedAccounts:eb08f87ca727": {
|
||
"__typename": "LinkedAccounts",
|
||
"mastodon": null,
|
||
"id": "eb08f87ca727"
|
||
},
|
||
"User:eb08f87ca727": {
|
||
"__typename": "User",
|
||
"id": "eb08f87ca727",
|
||
"linkedAccounts": {
|
||
"__ref": "LinkedAccounts:eb08f87ca727"
|
||
},
|
||
"isSuspended": false,
|
||
"name": "Kunalbhardwaj",
|
||
"customDomainState": null,
|
||
"hasSubdomain": false,
|
||
"username": "kunalbhardwaj598",
|
||
"verifications": {
|
||
"__typename": "VerifiedInfo",
|
||
"isBookAuthor": false
|
||
},
|
||
"imageId": "0*B_H6FgNfG5N9tYAJ",
|
||
"newsletterV3": null,
|
||
"socialStats": {
|
||
"__typename": "SocialStats",
|
||
"followerCount": 0,
|
||
"followingCount": 1,
|
||
"collectionFollowingCount": 0
|
||
},
|
||
"bio": "",
|
||
"membership": null,
|
||
"allowNotes": true,
|
||
"viewerEdge": {
|
||
"__ref": "UserViewerEdge:userId:eb08f87ca727-viewerId:lo_071f4336b292"
|
||
},
|
||
"twitterScreenName": ""
|
||
},
|
||
"Paragraph:af36c879ba6c_0": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_0",
|
||
"name": "a7c6",
|
||
"type": "H3",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "I Was Burning Through Claude Code’s Weekly Limit in 3 Days. Here’s How I Fixed It.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_1": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_1",
|
||
"name": "cd8d",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "I build drone guidance systems for a living. Ground control stations, onboard computers, MAVLink protocols, gimbal control loops — real-time systems where bugs mean a 30–100kg UAVs (Multicopters, \nVTOLs and Fixed Wing) crashes into something expensive.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_2": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_2",
|
||
"name": "7fec",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Claude Code became my primary development environment about six months ago. I’m on the Pro plan. And every single week, without fail, I’d hit my token limit by Wednesday.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_3": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_3",
|
||
"name": "d1b6",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Not because I was being wasteful. Because the work genuinely required it — reading 800-line Python files to understand thread interactions, generating test harnesses, updating documentation after every feature session. Normal engineering work, but Claude was eating through my allocation like it was nothing.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_4": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_4",
|
||
"name": "7adc",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "I tried the standard tricks. Compact after every task. Use Sonnet for simple edits. Write tighter prompts. Didn’t matter. By midweek, I’d get the “you’ve reached your limit” message and my momentum would die.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_5": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_5",
|
||
"name": "f2cd",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "So I did something different. I gave Claude a coworker.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_6": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_6",
|
||
"name": "f775",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "The Realization That Changed Everything",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [{
|
||
"__typename": "Markup",
|
||
"type": "STRONG",
|
||
"start": 0,
|
||
"end": 39,
|
||
"href": null,
|
||
"anchorType": null,
|
||
"userId": null,
|
||
"linkMetadata": null
|
||
}],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_7": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_7",
|
||
"name": "e861",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "One night, frustrated after hitting limits at 2 PM on a Tuesday, I sat down and actually read Claude Code’s [tools reference documentation](https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Ftools-reference). Not skimmed — read.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [{
|
||
"__typename": "Markup",
|
||
"type": "A",
|
||
"start": 140,
|
||
"end": 187,
|
||
"href": "https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Ftools-reference",
|
||
"anchorType": "LINK",
|
||
"userId": null,
|
||
"linkMetadata": null
|
||
}],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_8": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_8",
|
||
"name": "ebee",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "And I noticed something obvious that I’d been ignoring: Claude Code’s Bash tool can run any command on your PATH.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [{
|
||
"__typename": "Markup",
|
||
"type": "STRONG",
|
||
"start": 56,
|
||
"end": 113,
|
||
"href": null,
|
||
"anchorType": null,
|
||
"userId": null,
|
||
"linkMetadata": null
|
||
}],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_9": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_9",
|
||
"name": "565b",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Any command. Any script. Anything that takes stdin and prints to stdout.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_10": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_10",
|
||
"name": "b4de",
|
||
"type": "BQ",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "That means Claude can call external APIs. Not through some plugin system or MCP server or extension marketplace. Just… a Python script in `~\u002Fbin\u002F` that Claude runs via Bash.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_11": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_11",
|
||
"name": "5646",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "The second realization: most of what Claude does for me isn’t thinking. It’s I\u002FO.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [{
|
||
"__typename": "Markup",
|
||
"type": "STRONG",
|
||
"start": 24,
|
||
"end": 81,
|
||
"href": null,
|
||
"anchorType": null,
|
||
"userId": null,
|
||
"linkMetadata": null
|
||
}],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_12": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_12",
|
||
"name": "1120",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Reading large files to answer a question about one function. Generating a test file that’s 80% boilerplate. Rewriting documentation after a conversation. These tasks burn thousands of tokens but require almost zero reasoning. Claude’s intelligence is overkill for them.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_13": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_13",
|
||
"name": "9e3e",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "What if I could route these tasks to something cheaper?",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_14": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_14",
|
||
"name": "be89",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "The Architecture: 60 Lines of Python, Zero Overhead",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [{
|
||
"__typename": "Markup",
|
||
"type": "STRONG",
|
||
"start": 0,
|
||
"end": 51,
|
||
"href": null,
|
||
"anchorType": null,
|
||
"userId": null,
|
||
"linkMetadata": null
|
||
}],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_15": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_15",
|
||
"name": "ab3a",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "I picked Kimi K2.5 (Moonshot AI) as my worker model. Why?",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_16": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_16",
|
||
"name": "6699",
|
||
"type": "OLI",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "OpenAI-compatible API — the `openai` Python package works with zero changes, just swap the `base_url`",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_17": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_17",
|
||
"name": "0407",
|
||
"type": "OLI",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "128K context window — can ingest my entire GCS codebase in one call\n- Costs roughly 1\u002F100th of what equivalent Claude work would cost on my Pro plan",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_18": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_18",
|
||
"name": "a297",
|
||
"type": "OLI",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Has a “thinking” mode (internal chain-of-thought) that actually produces good technical analysis",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_19": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_19",
|
||
"name": "5ad1",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "But honestly, the specific model doesn’t matter. DeepSeek, Qwen, Gemini Flash — anything cheap with a long context window works. The pattern is what matters.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_20": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_20",
|
||
"name": "9cd8",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "I wrote two CLI tools. Total implementation: about 60 lines each.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_21": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_21",
|
||
"name": "cba1",
|
||
"type": "H3",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Tool 1: `ask-kimi` — The Bulk Reader",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [{
|
||
"__typename": "Markup",
|
||
"type": "STRONG",
|
||
"start": 0,
|
||
"end": 36,
|
||
"href": null,
|
||
"anchorType": null,
|
||
"userId": null,
|
||
"linkMetadata": null
|
||
}],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_22": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_22",
|
||
"name": "f55d",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "This is for when Claude would otherwise read multiple large files into its context window just to answer one question.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_23": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_23",
|
||
"name": "0e39",
|
||
"type": "PRE",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "#!\u002Fpath\u002Fto\u002Fvenv\u002Fbin\u002Fpython3\n\"\"\"Delegate bulk reading to Kimi K2.5.\"\"\"\nimport argparse, os, pathlib\nfrom openai import OpenAI\n\nclient = OpenAI(\n api_key=os.environ[\"MOONSHOT_API_KEY\"],\n base_url=\"https:\u002F\u002Fapi.moonshot.ai\u002Fv1\",\n)\n\n# Read the files, pack them into a corpus\ndocs = []\nfor path in args.paths:\n content = pathlib.Path(path).read_text()\n docs.append(f\"\u003Cfile path='{path}'\u003E\\n{content}\\n\u003C\u002Ffile\u003E\")\ncorpus = \"\\n\\n\".join(docs)\n\n# Ask Kimi to analyze them\nresp = client.chat.completions.create(\n model=\"kimi-k2.5\",\n messages=[\n {\"role\": \"system\", \"content\": \"You are a precise code analyst...\"},\n {\"role\": \"user\", \"content\": f\"\u003Ccorpus\u003E\\n{corpus}\\n\u003C\u002Fcorpus\u003E\"},\n {\"role\": \"user\", \"content\": args.question},\n ],\n max_tokens=8192,\n)\nprint(resp.choices[0].message.content)",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": {
|
||
"__typename": "CodeBlockMetadata",
|
||
"mode": "AUTO",
|
||
"lang": "python"
|
||
},
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_24": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_24",
|
||
"name": "e63f",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "When Claude needs to understand something spread across multiple files, instead of reading them all (let’s say 5 files × 400 lines = ~8,000 tokens burned), it runs:",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_25": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_25",
|
||
"name": "570a",
|
||
"type": "PRE",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "ask-kimi --paths gcs_main.py gimbal_control.py network.py \\\n --question \"What IP addresses and ports are used for video streaming?\"",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": {
|
||
"__typename": "CodeBlockMetadata",
|
||
"mode": "EXPLICIT",
|
||
"lang": "bash"
|
||
},
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_26": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_26",
|
||
"name": "0fc1",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Kimi reads all three files, produces a 300-word structured summary. Claude reads the summary (~400 tokens) and has its answer.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_27": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_27",
|
||
"name": "078d",
|
||
"type": "BQ",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Before: 8,000 tokens. After: 400 tokens. Same information.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [{
|
||
"__typename": "Markup",
|
||
"type": "STRONG",
|
||
"start": 0,
|
||
"end": 58,
|
||
"href": null,
|
||
"anchorType": null,
|
||
"userId": null,
|
||
"linkMetadata": null
|
||
}],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_28": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_28",
|
||
"name": "c332",
|
||
"type": "H3",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Tool 2: `kimi-write` — The Boilerplate Generator",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [{
|
||
"__typename": "Markup",
|
||
"type": "STRONG",
|
||
"start": 0,
|
||
"end": 48,
|
||
"href": null,
|
||
"anchorType": null,
|
||
"userId": null,
|
||
"linkMetadata": null
|
||
}],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_29": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_29",
|
||
"name": "2f42",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "For test files, config scaffolding, documentation — anything where Claude would spend expensive output tokens generating predictable text:",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_30": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_30",
|
||
"name": "0cc8",
|
||
"type": "PRE",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "kimi-write --spec \"pytest test file for the MAVLink heartbeat parser\" \\\n --context src\u002Fmavlink_parser.py \\\n --target tests\u002Ftest_mavlink_parser.py",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": {
|
||
"__typename": "CodeBlockMetadata",
|
||
"mode": "EXPLICIT",
|
||
"lang": "bash"
|
||
},
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_31": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_31",
|
||
"name": "abc2",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Kimi reads the reference file, generates the entire test file, writes it to disk. Claude then reviews what was generated and makes surgical edits — only spending tokens on the 5% that needs its intelligence.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_32": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_32",
|
||
"name": "1060",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "The Part Nobody Tells You: Making Claude Actually Use the Tools",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [{
|
||
"__typename": "Markup",
|
||
"type": "STRONG",
|
||
"start": 0,
|
||
"end": 63,
|
||
"href": null,
|
||
"anchorType": null,
|
||
"userId": null,
|
||
"linkMetadata": null
|
||
}],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_33": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_33",
|
||
"name": "6ece",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Here’s where most people would stop. “Cool, I have two scripts.” But Claude won’t use them unless you tell it to.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_34": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_34",
|
||
"name": "758c",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Claude Code reads a file called `CLAUDE.md` in your project root at the start of every session. It’s essentially Claude’s instruction manual for your project. And this is where the routing logic lives:",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_35": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_35",
|
||
"name": "fde1",
|
||
"type": "PRE",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "## Kimi K2.5 Delegation Tools (Token Saving)\n\n### ask-kimi — bulk reading\nFor reading files \u003E400 lines, or when you'd otherwise read 3+ files:\n ask-kimi --paths \u003Cfile1\u003E \u003Cfile2\u003E... --question \"\u003Cquestion\u003E\"\nReturns a structured summary. Use that instead of reading files yourself.\n\n### kimi-write — boilerplate generation\nFor tests, config files, docstrings, or repetitive patterns:\n kimi-write --spec \"\u003Cwhat\u003E\" --context \u003Creference\u003E --target \u003Coutput\u003E\nThen review the output and edit only what needs fixing.\n\n### When NOT to delegate\n- Tasks under ~2000 tokens (delegation overhead isn't worth it)\n- Architectural decisions, debugging, safety-critical code\n- Anything requiring careful reasoning\n- When exact line numbers are needed for editing",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": {
|
||
"__typename": "CodeBlockMetadata",
|
||
"mode": "EXPLICIT",
|
||
"lang": "markdown"
|
||
},
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_36": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_36",
|
||
"name": "3523",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "That last section — “When NOT to delegate” — is critical. Without it, Claude would try to route everything to Kimi, including stuff where you genuinely need Claude’s reasoning. The boundary has to be explicit:",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_37": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_37",
|
||
"name": "be5b",
|
||
"type": "BQ",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Claude = thinking. Kimi = I\u002FO.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_38": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_38",
|
||
"name": "7345",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Debugging a race condition between my camera thread and MAVLink thread? That’s Claude. Reading 5 files to understand which ports are in use? That’s Kimi. Writing a new test file matching existing patterns? That’s Kimi. Deciding whether a guidance calculation is numerically stable? Claude.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_39": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_39",
|
||
"name": "499c",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Once I put these rules in `CLAUDE.md`, Claude started self-routing without any manual intervention. I’d ask a question about my codebase and watch it reach for `ask-kimi` instead of reading the files itself. No friction. No extra prompting. It just… works.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_40": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_40",
|
||
"name": "759a",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "The Documentation Pipeline: The Biggest Win",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [{
|
||
"__typename": "Markup",
|
||
"type": "STRONG",
|
||
"start": 0,
|
||
"end": 43,
|
||
"href": null,
|
||
"anchorType": null,
|
||
"userId": null,
|
||
"linkMetadata": null
|
||
}],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_41": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_41",
|
||
"name": "29fe",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "This was the unexpected multiplier.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_42": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_42",
|
||
"name": "d49a",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "After every feature session, I used to update my project docs in Obsidian. Claude would re-read the conversation context, re-read the existing docs, then write prose updates. Easily 5,000+ tokens per doc update — and I was doing this multiple times per day.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_43": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_43",
|
||
"name": "70ad",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "I built a third tool: `extract-chat`. It takes Claude Code’s JSONL session transcript and strips it down to just the human-readable conversation text (no tool calls, no system prompts, no binary data).",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_44": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_44",
|
||
"name": "fd50",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Now the documentation workflow is:",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_45": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_45",
|
||
"name": "b189",
|
||
"type": "PRE",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "# 1. Extract clean conversation text\nextract-chat ~\u002F.claude\u002Fprojects\u002Fmy-project\u002Fsession.jsonl -o \u002Ftmp\u002Fchat.txt\n\n# 2. Kimi reads the chat + existing docs, produces update suggestions\nask-kimi --paths \u002Ftmp\u002Fchat.txt docs\u002Farchitecture.md \\\n --question \"Read the chat. What doc updates are needed? Give exact edits.\"\n\n# 3. Claude applies Kimi's suggestions (tiny token cost)",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": {
|
||
"__typename": "CodeBlockMetadata",
|
||
"mode": "AUTO",
|
||
"lang": "bash"
|
||
},
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_46": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_46",
|
||
"name": "1045",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Claude’s total token cost for a documentation update went from ~5,000 tokens to ~200 tokens. Twenty-five times less. And the documentation quality is the same because Kimi has the full conversation context and the full existing doc.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_47": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_47",
|
||
"name": "937d",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Black and Teal Modern Web Developer PresentationI put this in `CLAUDE.md` as a mandatory rule:",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_48": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_48",
|
||
"name": "8b5f",
|
||
"type": "PRE",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "### Documentation workflow (MANDATORY)\n**NEVER write documentation directly. Always delegate to kimi.**",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": {
|
||
"__typename": "CodeBlockMetadata",
|
||
"mode": "EXPLICIT",
|
||
"lang": "markdown"
|
||
},
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_49": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_49",
|
||
"name": "6924",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Claude follows it. Every time. No exceptions.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_50": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_50",
|
||
"name": "0ca4",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Things I Learned the Hard Way",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [{
|
||
"__typename": "Markup",
|
||
"type": "STRONG",
|
||
"start": 0,
|
||
"end": 29,
|
||
"href": null,
|
||
"anchorType": null,
|
||
"userId": null,
|
||
"linkMetadata": null
|
||
}],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_51": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_51",
|
||
"name": "0e5e",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Kimi K2.5 is a “thinking” model — and it’ll eat your budget silently",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [{
|
||
"__typename": "Markup",
|
||
"type": "STRONG",
|
||
"start": 0,
|
||
"end": 68,
|
||
"href": null,
|
||
"anchorType": null,
|
||
"userId": null,
|
||
"linkMetadata": null
|
||
}],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_52": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_52",
|
||
"name": "494f",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "My first version used `max_tokens=2048`. Kimi would use 1,500 tokens for internal reasoning (invisible to you) and have 548 tokens left for the actual answer. The response came back completely empty. No error, just… nothing.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [{
|
||
"__typename": "Markup",
|
||
"type": "STRONG",
|
||
"start": 182,
|
||
"end": 198,
|
||
"href": null,
|
||
"anchorType": null,
|
||
"userId": null,
|
||
"linkMetadata": null
|
||
}, {
|
||
"__typename": "Markup",
|
||
"type": "EM",
|
||
"start": 22,
|
||
"end": 39,
|
||
"href": null,
|
||
"anchorType": null,
|
||
"userId": null,
|
||
"linkMetadata": null
|
||
}],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_53": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_53",
|
||
"name": "6ce2",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "The fix: always set `max_tokens` high enough to cover both reasoning + answer. I use 8192 for reading tasks and 16384 for generation tasks. Kimi’s thinking tokens are cheap, but you have to budget for them.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [{
|
||
"__typename": "Markup",
|
||
"type": "EM",
|
||
"start": 20,
|
||
"end": 32,
|
||
"href": null,
|
||
"anchorType": null,
|
||
"userId": null,
|
||
"linkMetadata": null
|
||
}],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_54": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_54",
|
||
"name": "09c0",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Corpus ordering enables cache hits",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [{
|
||
"__typename": "Markup",
|
||
"type": "STRONG",
|
||
"start": 0,
|
||
"end": 34,
|
||
"href": null,
|
||
"anchorType": null,
|
||
"userId": null,
|
||
"linkMetadata": null
|
||
}],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_55": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_55",
|
||
"name": "5129",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Moonshot (like Anthropic) has prefix caching. If the first N tokens of your request match a previous request, they’re served from cache at 25% of the normal cost.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_56": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_56",
|
||
"name": "5220",
|
||
"type": "BQ",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "So I always put the files first, question last:",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_57": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_57",
|
||
"name": "16ff",
|
||
"type": "PRE",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "messages = [\n {\"role\": \"user\", \"content\": f\"\u003Ccorpus\u003E{corpus}\u003C\u002Fcorpus\u003E\"},\n {\"role\": \"user\", \"content\": question}, # only this changes between calls\n]",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": {
|
||
"__typename": "CodeBlockMetadata",
|
||
"mode": "EXPLICIT",
|
||
"lang": "python"
|
||
},
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_58": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_58",
|
||
"name": "0ba9",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Ask three questions about the same files? The first call pays full price, the next two are 75% cheaper because the corpus prefix is cached.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_59": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_59",
|
||
"name": "c145",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Don’t delegate reasoning",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [{
|
||
"__typename": "Markup",
|
||
"type": "STRONG",
|
||
"start": 0,
|
||
"end": 24,
|
||
"href": null,
|
||
"anchorType": null,
|
||
"userId": null,
|
||
"linkMetadata": null
|
||
}],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_60": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_60",
|
||
"name": "6b10",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "I tried routing debugging to Kimi early on. Bad move. It found surface-level issues but missed the subtle thread-safety bug that was actually causing my problem. Claude spotted it in 30 seconds once I gave it the right context.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_61": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_61",
|
||
"name": "dc19",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "The value of Claude isn’t reading files. Any model can do that. Claude’s value is connecting dots, spotting implications, understanding intent. Keep the thinking on Claude, route the paperwork elsewhere.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_62": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_62",
|
||
"name": "09a0",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "The Numbers",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [{
|
||
"__typename": "Markup",
|
||
"type": "STRONG",
|
||
"start": 0,
|
||
"end": 11,
|
||
"href": null,
|
||
"anchorType": null,
|
||
"userId": null,
|
||
"linkMetadata": null
|
||
}],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_63": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_63",
|
||
"name": "6000",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "After three weeks of running this setup on real engineering work:",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"ImageMetadata:1*3JwOUdCXFwnc2ly7Z1SY8Q.png": {
|
||
"__typename": "ImageMetadata",
|
||
"id": "1*3JwOUdCXFwnc2ly7Z1SY8Q.png",
|
||
"originalHeight": 556,
|
||
"originalWidth": 1298,
|
||
"focusPercentX": null,
|
||
"focusPercentY": null,
|
||
"alt": null
|
||
},
|
||
"Paragraph:af36c879ba6c_64": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_64",
|
||
"name": "62dd",
|
||
"type": "IMG",
|
||
"href": null,
|
||
"layout": "INSET_CENTER",
|
||
"metadata": {
|
||
"__ref": "ImageMetadata:1*3JwOUdCXFwnc2ly7Z1SY8Q.png"
|
||
},
|
||
"text": "",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_65": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_65",
|
||
"name": "8397",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "That’s not a typo. Thirty-eight cents. For three weeks of daily engineering work. And I haven’t hit my Claude Pro limit once since setting this up.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_66": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_66",
|
||
"name": "c92a",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "You Don’t Need My Specific Stack",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [{
|
||
"__typename": "Markup",
|
||
"type": "STRONG",
|
||
"start": 0,
|
||
"end": 32,
|
||
"href": null,
|
||
"anchorType": null,
|
||
"userId": null,
|
||
"linkMetadata": null
|
||
}],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_67": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_67",
|
||
"name": "c86f",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "The pattern works with any combination:",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_68": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_68",
|
||
"name": "4275",
|
||
"type": "OLI",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Expensive model: Claude Code, Cursor, Copilot — whatever you’re burning through",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_69": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_69",
|
||
"name": "8968",
|
||
"type": "OLI",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Cheap worker: DeepSeek V3, Qwen 2.5, Gemini Flash, Kimi K2.5, Llama 3.3 via Together\u002FGroq — anything with an OpenAI-compatible API",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_70": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_70",
|
||
"name": "2cca",
|
||
"type": "OLI",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Routing mechanism: CLAUDE.md for Claude Code, rules files for Cursor, system prompts for others",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_71": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_71",
|
||
"name": "2e69",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "The ingredients are:",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_72": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_72",
|
||
"name": "218e",
|
||
"type": "OLI",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "A CLI tool that calls the cheap API (30 lines of Python)",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_73": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_73",
|
||
"name": "eb47",
|
||
"type": "OLI",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "An instruction that tells the expensive model *when* to call it",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_74": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_74",
|
||
"name": "9d1b",
|
||
"type": "OLI",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "A clear boundary: thinking stays expensive, I\u002FO goes cheap",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_75": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_75",
|
||
"name": "2349",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "It took me an afternoon to build. The Python scripts are trivial. The `CLAUDE.md` routing rules are 20 lines. The hard part was having the idea in the first place.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_76": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_76",
|
||
"name": "21ef",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "If you’re burning through your AI coding limits every week, you don’t need a bigger plan. You need a worker.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_77": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_77",
|
||
"name": "033e",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Try It Yourself",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [{
|
||
"__typename": "Markup",
|
||
"type": "STRONG",
|
||
"start": 0,
|
||
"end": 15,
|
||
"href": null,
|
||
"anchorType": null,
|
||
"userId": null,
|
||
"linkMetadata": null
|
||
}],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_78": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_78",
|
||
"name": "3115",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "The full implementation (all three tools + CLAUDE.md routing rules + setup script) is on GitHub: link to be added",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [{
|
||
"__typename": "Markup",
|
||
"type": "STRONG",
|
||
"start": 97,
|
||
"end": 113,
|
||
"href": null,
|
||
"anchorType": null,
|
||
"userId": null,
|
||
"linkMetadata": null
|
||
}, {
|
||
"__typename": "Markup",
|
||
"type": "EM",
|
||
"start": 97,
|
||
"end": 113,
|
||
"href": null,
|
||
"anchorType": null,
|
||
"userId": null,
|
||
"linkMetadata": null
|
||
}],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_79": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_79",
|
||
"name": "85e0",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Setup takes 5 minutes:",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_80": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_80",
|
||
"name": "ac19",
|
||
"type": "OLI",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Get an API key from any cheap model provider",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_81": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_81",
|
||
"name": "cff6",
|
||
"type": "OLI",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Create a Python venv with the `openai` package",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_82": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_82",
|
||
"name": "c04b",
|
||
"type": "OLI",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Drop the CLI tools in `~\u002Fbin\u002F`",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_83": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_83",
|
||
"name": "36e9",
|
||
"type": "OLI",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "Add routing rules to your `CLAUDE.md`",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"Paragraph:af36c879ba6c_84": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_84",
|
||
"name": "69f9",
|
||
"type": "P",
|
||
"href": null,
|
||
"layout": null,
|
||
"metadata": null,
|
||
"text": "That’s it. No plugins to install. No MCP servers to configure. No extensions to manage. Just scripts on your PATH and instructions in a markdown file.",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"ImageMetadata:1*J868m-kmZStk7WFORZ83Aw.png": {
|
||
"__typename": "ImageMetadata",
|
||
"id": "1*J868m-kmZStk7WFORZ83Aw.png",
|
||
"originalHeight": 1080,
|
||
"originalWidth": 1920,
|
||
"focusPercentX": null,
|
||
"focusPercentY": null,
|
||
"alt": null
|
||
},
|
||
"Paragraph:af36c879ba6c_85": {
|
||
"__typename": "Paragraph",
|
||
"id": "af36c879ba6c_85",
|
||
"name": "c285",
|
||
"type": "IMG",
|
||
"href": null,
|
||
"layout": "INSET_CENTER",
|
||
"metadata": {
|
||
"__ref": "ImageMetadata:1*J868m-kmZStk7WFORZ83Aw.png"
|
||
},
|
||
"text": "",
|
||
"hasDropCap": null,
|
||
"dropCapImage": null,
|
||
"markups": [],
|
||
"codeBlockMetadata": null,
|
||
"iframe": null,
|
||
"mixtapeMetadata": null
|
||
},
|
||
"UserViewerEdge:userId:eb08f87ca727-viewerId:lo_071f4336b292": {
|
||
"__typename": "UserViewerEdge",
|
||
"id": "userId:eb08f87ca727-viewerId:lo_071f4336b292",
|
||
"isMuting": false
|
||
},
|
||
"TagViewerEdge:tagSlug:artificial-intelligence-viewerId:lo_071f4336b292": {
|
||
"__typename": "TagViewerEdge",
|
||
"id": "tagSlug:artificial-intelligence-viewerId:lo_071f4336b292",
|
||
"isMuting": false
|
||
},
|
||
"Tag:artificial-intelligence": {
|
||
"__typename": "Tag",
|
||
"viewerEdge": {
|
||
"__ref": "TagViewerEdge:tagSlug:artificial-intelligence-viewerId:lo_071f4336b292"
|
||
},
|
||
"id": "artificial-intelligence",
|
||
"displayTitle": "Artificial Intelligence",
|
||
"normalizedTagSlug": "artificial-intelligence"
|
||
},
|
||
"TagViewerEdge:tagSlug:claude-code-viewerId:lo_071f4336b292": {
|
||
"__typename": "TagViewerEdge",
|
||
"id": "tagSlug:claude-code-viewerId:lo_071f4336b292",
|
||
"isMuting": false
|
||
},
|
||
"Tag:claude-code": {
|
||
"__typename": "Tag",
|
||
"viewerEdge": {
|
||
"__ref": "TagViewerEdge:tagSlug:claude-code-viewerId:lo_071f4336b292"
|
||
},
|
||
"id": "claude-code",
|
||
"displayTitle": "Claude Code",
|
||
"normalizedTagSlug": "claude-code"
|
||
},
|
||
"TagViewerEdge:tagSlug:ai-agent-viewerId:lo_071f4336b292": {
|
||
"__typename": "TagViewerEdge",
|
||
"id": "tagSlug:ai-agent-viewerId:lo_071f4336b292",
|
||
"isMuting": false
|
||
},
|
||
"Tag:ai-agent": {
|
||
"__typename": "Tag",
|
||
"viewerEdge": {
|
||
"__ref": "TagViewerEdge:tagSlug:ai-agent-viewerId:lo_071f4336b292"
|
||
},
|
||
"id": "ai-agent",
|
||
"displayTitle": "AI Agent",
|
||
"normalizedTagSlug": "ai-agent"
|
||
},
|
||
"TagViewerEdge:tagSlug:programming-viewerId:lo_071f4336b292": {
|
||
"__typename": "TagViewerEdge",
|
||
"id": "tagSlug:programming-viewerId:lo_071f4336b292",
|
||
"isMuting": false
|
||
},
|
||
"Tag:programming": {
|
||
"__typename": "Tag",
|
||
"viewerEdge": {
|
||
"__ref": "TagViewerEdge:tagSlug:programming-viewerId:lo_071f4336b292"
|
||
},
|
||
"id": "programming",
|
||
"displayTitle": "Programming",
|
||
"normalizedTagSlug": "programming"
|
||
},
|
||
"TagViewerEdge:tagSlug:software-development-viewerId:lo_071f4336b292": {
|
||
"__typename": "TagViewerEdge",
|
||
"id": "tagSlug:software-development-viewerId:lo_071f4336b292",
|
||
"isMuting": false
|
||
},
|
||
"Tag:software-development": {
|
||
"__typename": "Tag",
|
||
"viewerEdge": {
|
||
"__ref": "TagViewerEdge:tagSlug:software-development-viewerId:lo_071f4336b292"
|
||
},
|
||
"id": "software-development",
|
||
"displayTitle": "Software Development",
|
||
"normalizedTagSlug": "software-development"
|
||
},
|
||
"PostViewerEdge:postId:0344c555abda-viewerId:lo_071f4336b292": {
|
||
"__typename": "PostViewerEdge",
|
||
"hasReposted": false,
|
||
"id": "postId:0344c555abda-viewerId:lo_071f4336b292",
|
||
"shouldIndexPostForExternalSearch": false
|
||
},
|
||
"Post:0344c555abda": {
|
||
"__typename": "Post",
|
||
"id": "0344c555abda",
|
||
"collection": null,
|
||
"content({\"postMeteringOptions\":{\"referrer\":\"\"}})": {
|
||
"__typename": "PostContent",
|
||
"isLockedPreviewOnly": false,
|
||
"bodyModel": {
|
||
"__typename": "RichText",
|
||
"sections": [{
|
||
"__typename": "Section",
|
||
"name": "05ce",
|
||
"startIndex": 0,
|
||
"textLayout": null,
|
||
"imageLayout": null,
|
||
"backgroundImage": null,
|
||
"videoLayout": null,
|
||
"backgroundVideo": null
|
||
}],
|
||
"paragraphs": [{
|
||
"__ref": "Paragraph:af36c879ba6c_0"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_1"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_2"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_3"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_4"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_5"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_6"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_7"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_8"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_9"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_10"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_11"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_12"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_13"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_14"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_15"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_16"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_17"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_18"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_19"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_20"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_21"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_22"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_23"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_24"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_25"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_26"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_27"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_28"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_29"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_30"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_31"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_32"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_33"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_34"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_35"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_36"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_37"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_38"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_39"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_40"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_41"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_42"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_43"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_44"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_45"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_46"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_47"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_48"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_49"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_50"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_51"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_52"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_53"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_54"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_55"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_56"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_57"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_58"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_59"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_60"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_61"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_62"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_63"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_64"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_65"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_66"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_67"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_68"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_69"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_70"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_71"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_72"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_73"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_74"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_75"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_76"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_77"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_78"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_79"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_80"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_81"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_82"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_83"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_84"
|
||
}, {
|
||
"__ref": "Paragraph:af36c879ba6c_85"
|
||
}]
|
||
},
|
||
"validatedShareKey": "",
|
||
"shareKeyCreator": null
|
||
},
|
||
"creator": {
|
||
"__ref": "User:eb08f87ca727"
|
||
},
|
||
"inResponseToEntityType": null,
|
||
"isLocked": false,
|
||
"isMarkedPaywallOnly": false,
|
||
"lockedSource": "LOCKED_POST_SOURCE_NONE",
|
||
"mediumUrl": "https:\u002F\u002Fmedium.com\u002F@kunalbhardwaj598\u002Fi-was-burning-through-claude-codes-weekly-limit-in-3-days-here-s-how-i-fixed-it-0344c555abda",
|
||
"primaryTopic": null,
|
||
"topics": [],
|
||
"isLimitedState": false,
|
||
"isPublished": true,
|
||
"allowResponses": true,
|
||
"responsesLocked": false,
|
||
"visibility": "PUBLIC",
|
||
"latestPublishedVersion": "af36c879ba6c",
|
||
"postResponses": {
|
||
"__typename": "PostResponses",
|
||
"count": 0
|
||
},
|
||
"responseDistribution": "NOT_DISTRIBUTED",
|
||
"clapCount": 0,
|
||
"title": "I Was Burning Through Claude Code’s Weekly Limit in 3 Days. Here’s How I Fixed It.",
|
||
"isSeries": false,
|
||
"sequence": null,
|
||
"uniqueSlug": "i-was-burning-through-claude-codes-weekly-limit-in-3-days-here-s-how-i-fixed-it-0344c555abda",
|
||
"tags": [{
|
||
"__ref": "Tag:artificial-intelligence"
|
||
}, {
|
||
"__ref": "Tag:claude-code"
|
||
}, {
|
||
"__ref": "Tag:ai-agent"
|
||
}, {
|
||
"__ref": "Tag:programming"
|
||
}, {
|
||
"__ref": "Tag:software-development"
|
||
}],
|
||
"inResponseToPostResult": null,
|
||
"inResponseToCatalogResult": null,
|
||
"viewerEdge": {
|
||
"__ref": "PostViewerEdge:postId:0344c555abda-viewerId:lo_071f4336b292"
|
||
},
|
||
"socialTitle": "",
|
||
"socialDek": "",
|
||
"canonicalUrl": "https:\u002F\u002Fmedium.com\u002F@kunalbhardwaj598\u002Fi-was-burning-through-claude-codes-weekly-limit-in-3-days-here-s-how-i-fixed-it-0344c555abda",
|
||
"metaDescription": "",
|
||
"latestPublishedAt": 1777719097588,
|
||
"readingTime": 6.915408805031447,
|
||
"previewContent": {
|
||
"__typename": "PreviewContent",
|
||
"subtitle": "I build drone guidance systems for a living. Ground control stations, onboard computers, MAVLink protocols, gimbal control loops —…"
|
||
},
|
||
"previewImage": {
|
||
"__ref": "ImageMetadata:1*J868m-kmZStk7WFORZ83Aw.png"
|
||
},
|
||
"isShortform": false,
|
||
"seoMetaTags": {
|
||
"__typename": "SEOMetaTags",
|
||
"jsonLd": "{\"@context\":\"https:\u002F\u002Fschema.org\",\"@id\":\"https:\u002F\u002Fmedium.com\u002F@kunalbhardwaj598\u002Fi-was-burning-through-claude-codes-weekly-limit-in-3-days-here-s-how-i-fixed-it-0344c555abda\",\"@type\":\"SocialMediaPosting\",\"image\":[\"https:\u002F\u002Fmiro.medium.com\u002F1*J868m-kmZStk7WFORZ83Aw.png\"],\"url\":\"https:\u002F\u002Fmedium.com\u002F@kunalbhardwaj598\u002Fi-was-burning-through-claude-codes-weekly-limit-in-3-days-here-s-how-i-fixed-it-0344c555abda\",\"dateCreated\":\"2026-05-02T10:51:37Z\",\"datePublished\":\"2026-05-02T10:51:37Z\",\"dateModified\":\"2026-05-02T10:51:37Z\",\"headline\":\"I Was Burning Through Claude Code’s Weekly Limit in 3 Days. Here’s How I Fixed It.\",\"name\":\"I Was Burning Through Claude Code’s Weekly Limit in 3 Days. Here’s How I Fixed It.\",\"description\":\"I Was Burning Through Claude Code’s Weekly Limit in 3 Days. Here’s How I Fixed It. I build drone guidance systems for a living. Ground control stations, onboard computers, MAVLink protocols …\",\"identifier\":\"0344c555abda\",\"author\":{\"@context\":\"https:\u002F\u002Fschema.org\",\"@id\":\"https:\u002F\u002Fmedium.com\u002F@kunalbhardwaj598\",\"@type\":\"Person\",\"identifier\":\"kunalbhardwaj598\",\"name\":\"Kunalbhardwaj\",\"url\":\"https:\u002F\u002Fmedium.com\u002F@kunalbhardwaj598\"},\"creator\":{\"@context\":\"https:\u002F\u002Fschema.org\",\"@id\":\"https:\u002F\u002Fmedium.com\u002F@kunalbhardwaj598\",\"@type\":\"Person\",\"identifier\":\"kunalbhardwaj598\",\"name\":\"Kunalbhardwaj\",\"url\":\"https:\u002F\u002Fmedium.com\u002F@kunalbhardwaj598\"},\"publisher\":{\"@context\":\"https:\u002F\u002Fschema.org\",\"@type\":\"Organization\",\"@id\":\"https:\u002F\u002Fmedium.com\",\"name\":\"Medium\",\"url\":\"https:\u002F\u002Fmedium.com\",\"logo\":{\"@type\":\"ImageObject\",\"width\":500,\"height\":110,\"url\":\"https:\u002F\u002Fmiro.medium.com\u002Fv2\u002Fresize:fit:500\u002F7%2AV1_7XP4snlmqrc_0Njontw.png\"}},\"mainEntityOfPage\":\"https:\u002F\u002Fmedium.com\u002F@kunalbhardwaj598\u002Fi-was-burning-through-claude-codes-weekly-limit-in-3-days-here-s-how-i-fixed-it-0344c555abda\",\"isAccessibleForFree\":true}"
|
||
},
|
||
"seoDescription": "I Was Burning Through Claude Code’s Weekly Limit in 3 Days. Here’s How I Fixed It. I build drone guidance systems for a living. Ground control stations, onboard computers, MAVLink protocols …",
|
||
"shortformType": "SHORTFORM_TYPE_LINK",
|
||
"firstPublishedAt": 1777719097588,
|
||
"seoTitle": "",
|
||
"isSuspended": false,
|
||
"license": "ALL_RIGHTS_RESERVED",
|
||
"isFeaturedInPublishedPublication": false,
|
||
"isNewsletter": false,
|
||
"statusForCollection": null,
|
||
"pendingCollection": null,
|
||
"detectedLanguage": "en",
|
||
"wordCount": 1731
|
||
}
|
||
}
|
||
</script>
|
||
<script>
|
||
window.__MIDDLEWARE_STATE__ = {
|
||
"session": {
|
||
"xsrf": ""
|
||
},
|
||
"cache": {
|
||
"cacheStatus": "HIT"
|
||
}
|
||
}
|
||
</script>
|
||
<script src="https://cdn-client.medium.com/lite/static/js/manifest.3dfd863f.js"></script>
|
||
<script src="https://cdn-client.medium.com/lite/static/js/2746.261ecfe2.js"></script>
|
||
<script src="https://cdn-client.medium.com/lite/static/js/main.58bca11c.js"></script>
|
||
<script id="__LOADABLE_REQUIRED_CHUNKS__" type="application/json">
|
||
[
|
||
6183,
|
||
5049,
|
||
628,
|
||
6062,
|
||
7566,
|
||
3777,
|
||
7908,
|
||
3927,
|
||
9356,
|
||
3377,
|
||
6372,
|
||
4329,
|
||
5429,
|
||
6919,
|
||
8160,
|
||
273,
|
||
6834,
|
||
7979,
|
||
7975,
|
||
3877,
|
||
9256,
|
||
1839,
|
||
8768,
|
||
1137,
|
||
1069,
|
||
4283,
|
||
4269,
|
||
5304,
|
||
2698,
|
||
3974,
|
||
2527,
|
||
2886,
|
||
5258
|
||
]</script>
|
||
<script id="__LOADABLE_REQUIRED_CHUNKS___ext" type="application/json">
|
||
{
|
||
"namedChunks": [
|
||
"instrumentation",
|
||
"PostPage.MainContent",
|
||
"PostResponsesContent",
|
||
"responses.editor"
|
||
]
|
||
}</script>
|
||
<script async="" data-chunk="instrumentation" src="https://cdn-client.medium.com/lite/static/js/instrumentation.bbc70038.chunk.js"></script>
|
||
<script async="" data-chunk="PostPage.MainContent" src="https://cdn-client.medium.com/lite/static/js/5049.9ac3f35f.chunk.js"></script>
|
||
<script async="" data-chunk="PostPage.MainContent" src="https://cdn-client.medium.com/lite/static/js/628.add32a62.chunk.js"></script>
|
||
<script async="" data-chunk="PostPage.MainContent" src="https://cdn-client.medium.com/lite/static/js/6062.c3638afc.chunk.js"></script>
|
||
<script async="" data-chunk="PostPage.MainContent" src="https://cdn-client.medium.com/lite/static/js/7566.4c650114.chunk.js"></script>
|
||
<script async="" data-chunk="PostPage.MainContent" src="https://cdn-client.medium.com/lite/static/js/3777.ffc82891.chunk.js"></script>
|
||
<script async="" data-chunk="PostPage.MainContent" src="https://cdn-client.medium.com/lite/static/js/7908.fd958323.chunk.js"></script>
|
||
<script async="" data-chunk="PostPage.MainContent" src="https://cdn-client.medium.com/lite/static/js/3927.4e25e3d1.chunk.js"></script>
|
||
<script async="" data-chunk="PostPage.MainContent" src="https://cdn-client.medium.com/lite/static/js/9356.25c0892e.chunk.js"></script>
|
||
<script async="" data-chunk="PostPage.MainContent" src="https://cdn-client.medium.com/lite/static/js/3377.000952ed.chunk.js"></script>
|
||
<script async="" data-chunk="PostPage.MainContent" src="https://cdn-client.medium.com/lite/static/js/6372.9524c174.chunk.js"></script>
|
||
<script async="" data-chunk="PostPage.MainContent" src="https://cdn-client.medium.com/lite/static/js/4329.9a2f0fae.chunk.js"></script>
|
||
<script async="" data-chunk="PostPage.MainContent" src="https://cdn-client.medium.com/lite/static/js/5429.91381076.chunk.js"></script>
|
||
<script async="" data-chunk="PostPage.MainContent" src="https://cdn-client.medium.com/lite/static/js/6919.86f69f03.chunk.js"></script>
|
||
<script async="" data-chunk="PostPage.MainContent" src="https://cdn-client.medium.com/lite/static/js/8160.584fc2c2.chunk.js"></script>
|
||
<script async="" data-chunk="PostPage.MainContent" src="https://cdn-client.medium.com/lite/static/js/273.12f19221.chunk.js"></script>
|
||
<script async="" data-chunk="PostPage.MainContent" src="https://cdn-client.medium.com/lite/static/js/6834.88ea9ad9.chunk.js"></script>
|
||
<script async="" data-chunk="PostPage.MainContent" src="https://cdn-client.medium.com/lite/static/js/7979.5e7e834d.chunk.js"></script>
|
||
<script async="" data-chunk="PostPage.MainContent" src="https://cdn-client.medium.com/lite/static/js/7975.3f8d607c.chunk.js"></script>
|
||
<script async="" data-chunk="PostPage.MainContent" src="https://cdn-client.medium.com/lite/static/js/3877.e527e4b3.chunk.js"></script>
|
||
<script async="" data-chunk="PostPage.MainContent" src="https://cdn-client.medium.com/lite/static/js/9256.a9d988bb.chunk.js"></script>
|
||
<script async="" data-chunk="PostPage.MainContent" src="https://cdn-client.medium.com/lite/static/js/1839.fbdcca31.chunk.js"></script>
|
||
<script async="" data-chunk="PostPage.MainContent" src="https://cdn-client.medium.com/lite/static/js/8768.55ce865d.chunk.js"></script>
|
||
<script async="" data-chunk="PostPage.MainContent" src="https://cdn-client.medium.com/lite/static/js/1137.082101d1.chunk.js"></script>
|
||
<script async="" data-chunk="PostPage.MainContent" src="https://cdn-client.medium.com/lite/static/js/1069.bbe95674.chunk.js"></script>
|
||
<script async="" data-chunk="PostPage.MainContent" src="https://cdn-client.medium.com/lite/static/js/4283.13b0e79a.chunk.js"></script>
|
||
<script async="" data-chunk="PostPage.MainContent" src="https://cdn-client.medium.com/lite/static/js/4269.b172cadd.chunk.js"></script>
|
||
<script async="" data-chunk="PostPage.MainContent" src="https://cdn-client.medium.com/lite/static/js/PostPage.MainContent.ce3728f8.chunk.js"></script>
|
||
<script async="" data-chunk="PostResponsesContent" src="https://cdn-client.medium.com/lite/static/js/2698.ec573672.chunk.js"></script>
|
||
<script async="" data-chunk="PostResponsesContent" src="https://cdn-client.medium.com/lite/static/js/3974.0db7795c.chunk.js"></script>
|
||
<script async="" data-chunk="PostResponsesContent" src="https://cdn-client.medium.com/lite/static/js/2527.6ab6ecb8.chunk.js"></script>
|
||
<script async="" data-chunk="PostResponsesContent" src="https://cdn-client.medium.com/lite/static/js/PostResponsesContent.94e5d8b7.chunk.js"></script>
|
||
<script async="" data-chunk="responses.editor" src="https://cdn-client.medium.com/lite/static/js/responses.editor.3c0ab8ba.chunk.js"></script>
|
||
<script>
|
||
window.main();
|
||
</script>
|
||
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"0b5f665943484354a59c39c6833f7078","server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
|
||
<script>
|
||
(function() {
|
||
function c() {
|
||
var b = a.contentDocument || a.contentWindow.document;
|
||
if (b) {
|
||
var d = b.createElement('script');
|
||
d.innerHTML = "window.__CF$cv$params={r:'9f5cf10eb902fba6',t:'MTc3Nzc4NjkzOA=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";
|
||
b.getElementsByTagName('head')[0].appendChild(d)
|
||
}
|
||
}
|
||
if (document.body) {
|
||
var a = document.createElement('iframe');
|
||
a.height = 1;
|
||
a.width = 1;
|
||
a.style.position = 'absolute';
|
||
a.style.top = 0;
|
||
a.style.left = 0;
|
||
a.style.border = 'none';
|
||
a.style.visibility = 'hidden';
|
||
document.body.appendChild(a);
|
||
if ('loading' !== document.readyState)
|
||
c();
|
||
else if (window.addEventListener)
|
||
document.addEventListener('DOMContentLoaded', c);
|
||
else {
|
||
var e = document.onreadystatechange || function() {}
|
||
;
|
||
document.onreadystatechange = function(b) {
|
||
e(b);
|
||
'loading' !== document.readyState && (document.onreadystatechange = e,
|
||
c())
|
||
}
|
||
}
|
||
}
|
||
}
|
||
)();
|
||
</script>
|
||
</body>
|
||
</html>
|