Skip to content

Commit d1eadf7

Browse files
captkernelclaude
andcommitted
Replace Vision window with a richer About section
- New ~/about.md window (dock + mobile + macOS launcher): identity header (name, handle, role, day-job line), a bio paragraph, a "what I'm building toward" section (AI-native companies / agentic automation / tools), and a live "now" line - Vision folded in as a nested "# the bet" box (keeps the animated typing) - Wires: about app, mountAbout, terminal `about` opens the window, mac title + launcher updated; both skins themed Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 2d3c5da commit d1eadf7

1 file changed

Lines changed: 36 additions & 13 deletions

File tree

index.html

Lines changed: 36 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,23 @@
9999
.w-fetch .info{font-size:.79rem;line-height:1.9;} .w-fetch .info .k{color:var(--accent);display:inline-block;width:70px;} .w-fetch .info .v{color:var(--text);}
100100
.w-fetch .palette{display:flex;gap:5px;margin-top:.9rem;} .w-fetch .palette i{width:16px;height:16px;border-radius:4px;display:block;}
101101

102-
.w-vision .wbody{padding:1.2rem 1.3rem;font-family:var(--mono);font-size:.85rem;line-height:1.7;}
103-
.w-vision .cm{color:var(--faint);} .w-vision .big{color:var(--text);font-family:var(--sans);font-size:1rem;line-height:1.5;font-weight:500;margin-top:.4rem;} .w-vision .big b,.w-vision .big .vg{color:var(--accent);font-weight:600;}
104-
.w-vision .vcur{display:inline-block;width:.5em;height:1.05em;background:var(--accent);vertical-align:-2px;margin-left:1px;animation:vblink 1.05s steps(1) infinite;} @keyframes vblink{50%{opacity:0;}}
102+
/* ---- About window ---- */
103+
.w-about .wbody{padding:1.1rem 1.3rem;font-family:var(--sans);overflow:auto;}
104+
.w-about .ab-id{display:flex;align-items:baseline;gap:.55rem;flex-wrap:wrap;}
105+
.w-about .ab-nm{font-size:1.25rem;font-weight:700;color:var(--text);letter-spacing:-.01em;}
106+
.w-about .ab-hn{font-family:var(--mono);font-size:.78rem;color:var(--accent);} .w-about .ab-hn::before{content:"@";opacity:.6;}
107+
.w-about .ab-role{font-size:.9rem;color:var(--text);margin-top:.2rem;}
108+
.w-about .ab-meta{font-family:var(--mono);font-size:.7rem;color:var(--faint);margin-top:.28rem;}
109+
.w-about .ab-bio{font-size:.84rem;line-height:1.62;color:var(--muted);margin:.9rem 0;}
110+
.w-about .ab-bet{border:1px solid var(--border);border-left:2px solid var(--accent);border-radius:0 8px 8px 0;background:rgba(70,209,122,.05);padding:.6rem .8rem;margin:.9rem 0;font-family:var(--mono);}
111+
.w-about .ab-bet .cm{color:var(--faint);font-size:.72rem;}
112+
.w-about .ab-bet .big{color:var(--text);font-family:var(--sans);font-size:.94rem;line-height:1.5;font-weight:500;margin-top:.3rem;} .w-about .ab-bet .big b,.w-about .ab-bet .big .vg{color:var(--accent);font-weight:600;}
113+
.w-about .vcur{display:inline-block;width:.5em;height:1.05em;background:var(--accent);vertical-align:-2px;margin-left:1px;animation:vblink 1.05s steps(1) infinite;} @keyframes vblink{50%{opacity:0;}}
114+
.w-about .ab-h{font-family:var(--mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.5px;color:var(--faint);margin:.2rem 0 .5rem;}
115+
.w-about .ab-row{margin-bottom:.55rem;} .w-about .ab-row b{display:block;font-size:.82rem;color:var(--text);font-weight:600;} .w-about .ab-row span{font-family:var(--mono);font-size:.7rem;color:var(--muted);line-height:1.4;}
116+
.w-about .ab-now{display:flex;align-items:center;gap:.45rem;font-family:var(--mono);font-size:.74rem;color:var(--muted);margin-top:.7rem;border-top:1px solid var(--border);padding-top:.7rem;}
117+
.w-about .ab-now .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 6px var(--accent);flex:none;}
118+
body.macos .w-about .ab-hn,body.macos .w-about .ab-bet .big .vg{color:#2997ff;} body.macos .w-about .ab-bet{border-left-color:#2997ff;background:rgba(10,132,255,.06);} body.macos .w-about .vcur,body.macos .w-about .ab-now .dot{background:#2997ff;box-shadow:0 0 6px #2997ff;}
105119

106120
.w-work .wbody{font-family:var(--mono);}
107121
.w-work .note{padding:.5rem 1rem;font-size:.68rem;color:var(--yellow);border-bottom:1px solid var(--border);background:rgba(229,192,123,.05);}
@@ -520,7 +534,7 @@
520534
<div class="dock">
521535
<div class="app" data-open="home"><span class="lab">home</span></div>
522536
<div class="app" data-open="term">▸_<span class="lab">term</span></div>
523-
<div class="app" data-open="vision"><span class="lab">vision</span></div>
537+
<div class="app" data-open="about"><span class="lab">about</span></div>
524538
<div class="app" data-open="work"><span class="lab">work</span></div>
525539
<div class="app" data-open="kernel"><span class="lab">kernel</span></div>
526540
<div class="app" data-open="connect"><span class="lab">connect</span></div>
@@ -846,13 +860,22 @@
846860
hero:{icon:'⌂',title:'hero',w:520,h:340,cls:'w-hero',html:'<div class="eyebrow">// solo AI studio · building in the open</div><h1>I build<br>with <span class="ai">AI.</span></h1><p class="sub">captKernel is where I build autonomous agents, developer tools, and the products that grow out of them — solo, and in the open.</p><div class="ctas"><a class="btn primary" data-open="work">Explore the work</a><a class="btn ghost" data-open="connect">Work with me →</a></div>'},
847861
term:{icon:'▸',title:'captkernel — zsh',w:520,h:300,cls:'w-term',html:'<div class="termout"><div class="ln o">captKernel shell. type <span class="hl">help</span>, or ask — e.g. <span class="cy">"what can you build for me?"</span></div></div><div class="terminline"><span class="p">captkernel:~$</span><input autocomplete="off" spellcheck="false"></div>'},
848862
fetch:{icon:'◐',title:'fastfetch',w:340,h:360,cls:'w-fetch',html:FETCH},
849-
vision:{icon:'◎',title:'~/vision.txt',w:340,h:200,cls:'w-vision',html:'<div class="cm"># my bet</div><div class="big vbig"></div>'},
863+
about:{icon:'◎',title:'~/about.md',w:480,h:440,cls:'w-about',html:'<div class="ab-id"><span class="ab-nm">Karan Parmar</span><span class="ab-hn">captkernel</span></div>'+
864+
'<div class="ab-role">Solo AI builder — I direct, agents build.</div>'+
865+
'<div class="ab-meta">AI Decision Science Manager @ Accenture (GenAI) · building captKernel in the open</div>'+
866+
'<p class="ab-bio">I\'m more a director than a hands-on coder: I describe what I want, agents build it, and I review and ship — moving at the speed of ideas instead of the speed of typing. captKernel is my one-person AI studio, where I build autonomous agents, developer tools, and AI-native products, and document the whole thing in the open.</p>'+
867+
'<div class="ab-bet"><div class="cm"># the bet</div><div class="big vbig"></div></div>'+
868+
'<div class="ab-h">what i\'m building toward</div>'+
869+
'<div class="ab-row"><b>AI-native companies</b><span>ANCYR — a luxury Angora house run by ~26 agents · Swadesh — an autonomous company-operator</span></div>'+
870+
'<div class="ab-row"><b>Agentic automation of real work</b><span>Kids Planet — my family\'s 15-year-old school · FooFindr — group ordering</span></div>'+
871+
'<div class="ab-row"><b>Tools for the agent era</b><span>Skills Curator · Claunchpad · Knob</span></div>'+
872+
'<div class="ab-now"><span class="dot"></span> building autonomous agents · shipping weekly · writing The Kernel</div>'},
850873
work:{icon:'▦',title:'~/systems — all work',w:640,h:460,cls:'w-work',html:workHtml()},
851874
kernel:{icon:'✎',title:'The Kernel — dmesg',w:560,h:440,cls:'w-kernel',html:KERNEL},
852875
connect:{icon:'✉',title:'~/connect',w:420,h:240,cls:'w-conn',html:'<a class="row" href="https://github.com/captkernel" target="_blank" rel="noopener"><span class="k">github</span><span class="v">github.com/captkernel →</span></a><a class="row" href="https://x.com/captkernel" target="_blank" rel="noopener"><span class="k">x</span><span class="v">@captkernel →</span></a><a class="row" href="https://www.linkedin.com/in/karanparmar99" target="_blank" rel="noopener"><span class="k">linkedin</span><span class="v">in/karanparmar99 →</span></a><a class="row" data-open="kernel"><span class="k">newsletter</span><span class="v">The Kernel →</span></a>'}
853876
};
854877
/* macOS-mode window titles (Linux/Windows metaphors → Mac apps); icon is hidden in the mac title bar */
855-
var MAC_TITLES={hero:'captKernel',term:'Terminal — zsh',fetch:'About This Mac',vision:'Notesmy bet',work:'Finder — Systems',kernel:'The Kernel',connect:'Contacts — connect'};
878+
var MAC_TITLES={hero:'captKernel',term:'Terminal — zsh',fetch:'About This Mac',about:'AboutKaran Parmar',work:'Finder — Systems',kernel:'The Kernel',connect:'Contacts — connect'};
856879
Object.keys(MAC_TITLES).forEach(function(k){if(APPS[k])APPS[k].mtitle=MAC_TITLES[k];});
857880

858881
function toast(m){toastEl.textContent=m;toastEl.style.opacity='1';clearTimeout(toast._t);toast._t=setTimeout(function(){toastEl.style.opacity='0';},1600);}
@@ -993,7 +1016,7 @@
9931016
/* content interactivity */
9941017
if(id==='term')mountTerm(el);
9951018
if(id==='kernel')mountKernel(el);
996-
if(id==='vision')mountVision(el);
1019+
if(id==='about')mountAbout(el);
9971020
if(id==='work')mountWork(el);
9981021
el.querySelectorAll('[data-open]').forEach(function(b){b.addEventListener('click',function(){openApp(b.getAttribute('data-open'));});});
9991022
}
@@ -1341,11 +1364,11 @@
13411364
function pr(h,c){var d=document.createElement('div');d.className='ln '+(c||'');d.innerHTML=h;out.appendChild(d);}
13421365
var C={help:function(){pr('commands: <span class="hl">whoami about work skills experience vision now kernel dmesg subscribe social contact available clear</span>','o');pr('…or just ask in plain English.','cy');},
13431366
whoami:function(){pr('captKernel — Karan Parmar. Solo AI builder shipping agents, tools & products in the open.','o');},
1344-
about:function(){pr('By day: AI Decision Science @ Accenture. Off the clock: captKernel, a one-person AI studio. 7 public repos and counting.','o');},
1367+
about:function(){pr('opening ~/about…','o');setTimeout(function(){goApp('about');},250);},
13451368
work:function(){pr('my systems — opening ~/systems…','o');setTimeout(function(){goApp('work');},250);},
13461369
skills:function(){pr('python · typescript · claude/agent SDK · LLM & agent design · node · electron · windows tooling','o');},
13471370
experience:function(){pr('AI Decision Science Manager @ Accenture (GenAI). Independently: captKernel.','o');},
1348-
vision:function(){pr('Turn frontier AI into things people actually use — in the open, one system at a time.','o');},
1371+
vision:function(){pr('the bet: turn frontier AI into things people actually use — in the open, one system at a time. (see ~/about)','o');},
13491372
now:function(){pr('● building autonomous agents · shipping weekly · writing The Kernel','o');},
13501373
kernel:function(){pr('opening The Kernel…','o');setTimeout(function(){openApp('kernel');},250);},
13511374
dmesg:function(){pr('[ 2026.06.21 ] build shipped: skills-curator','o');pr('[ 2026.06.07 ] playbook Shipping AI products solo','o');pr('run "kernel" to read →','cy');},
@@ -1371,7 +1394,7 @@
13711394
if(C[b])C[b](p);else answer(v);body.scrollTop=body.scrollHeight;}});
13721395
}
13731396
function mountKernel(el){el.querySelectorAll('.k-row:not(.k-ext), .k-pin .get').forEach(function(r){r.addEventListener('click',function(){toast('demo — issue would open here');});});}
1374-
function mountVision(el){var big=el.querySelector('.vbig');if(!big)return;big.innerHTML='';
1397+
function mountAbout(el){var big=el.querySelector('.vbig');if(!big)return;big.innerHTML='';
13751398
var segs=[{t:'Turn frontier AI into things people actually use — and build it ',c:''},{t:'in the open',c:'vg'},{t:', one system at a time.',c:''}];
13761399
var cur=document.createElement('span');cur.className='vcur';big.appendChild(cur);
13771400
var si=0,ci=0,span=null;
@@ -1388,15 +1411,15 @@
13881411
/* ---------------- mobile: stacked single-column site (no window manager) ---------------- */
13891412
function initMobile(){
13901413
var host=document.getElementById('m-main');if(!host)return;
1391-
var seq=['hero','fetch','vision','term','work','kernel','connect'];
1414+
var seq=['hero','fetch','about','term','work','kernel','connect'];
13921415
seq.forEach(function(id){var a=APPS[id];if(!a)return;
13931416
var sec=document.createElement('section');sec.className='m-card '+a.cls;sec.id='m-'+id;
13941417
var mt=(MAC()&&a.mtitle)?a.mtitle:a.title;
13951418
sec.innerHTML='<div class="wbar"><span class="ic">'+a.icon+'</span><span class="name">'+mt+'</span></div><div class="wbody">'+a.html+'</div>';
13961419
host.appendChild(sec);
13971420
if(id==='term')mountTerm(sec);
13981421
if(id==='kernel')mountKernel(sec);
1399-
if(id==='vision')mountVision(sec);
1422+
if(id==='about')mountAbout(sec);
14001423
if(id==='work')mountWork(sec);
14011424
sec.querySelectorAll('[data-open]').forEach(function(b){b.addEventListener('click',function(e){e.preventDefault();var t=document.getElementById('m-'+b.getAttribute('data-open'));if(t)t.scrollIntoView({behavior:'smooth',block:'start'});});});
14021425
});
@@ -1526,7 +1549,7 @@
15261549

15271550
/* Spotlight */
15281551
(function(){var spotEl=document.getElementById('spotlight'),spIn=document.getElementById('sp-input'),spRes=document.getElementById('sp-res');if(!spotEl)return;
1529-
var LIST=[['hero','⌂','captKernel — Home'],['fetch','','About This Mac'],['term','⌥','Terminal'],['vision','◎','Notesmy bet'],['work','▦','Finder — Systems'],['kernel','✦','The Kernel'],['connect','☎','Contacts — connect']];
1552+
var LIST=[['hero','⌂','captKernel — Home'],['fetch','','About This Mac'],['term','⌥','Terminal'],['about','◎','AboutKaran Parmar'],['work','▦','Finder — Systems'],['kernel','✦','The Kernel'],['connect','☎','Contacts — connect']];
15301553
function render(q){q=(q||'').toLowerCase().trim();
15311554
var hits=LIST.filter(function(a){return !q||a[2].toLowerCase().indexOf(q)>=0||a[0].indexOf(q)>=0;});
15321555
var h='';hits.forEach(function(a,i){h+='<div class="sp-item'+(i===0?' sel':'')+'" data-go="'+a[0]+'"><span class="si-ic">'+a[1]+'</span>'+a[2]+'<span class="si-sub">Open</span></div>';});

0 commit comments

Comments
 (0)