open source is social v-it.org
at main 419 lines 13 kB view raw
1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="utf-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1"> 6 <title>get started — vit</title> 7 <meta name="description" content="Set up vit and start discovering software capabilities across the network."> 8 <meta property="og:title" content="get started — vit"> 9 <meta property="og:description" content="Set up vit and start discovering software capabilities across the network."> 10 <meta property="og:type" content="website"> 11 <link rel="icon" type="image/svg+xml" href="/brand/vit-mark.svg"> 12 <style> 13 :root { 14 color-scheme: light; 15 --vit-green: #06D6A0; 16 --vit-green-deep: #059669; 17 } 18 19 body { 20 margin: 0; 21 padding: 0; 22 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; 23 color: #111827; 24 background: #ffffff; 25 line-height: 1.6; 26 } 27 28 .container { 29 max-width: 720px; 30 margin: 0 auto; 31 padding: 24px 20px 32px; 32 } 33 34 header { 35 border-bottom: 2px solid var(--vit-green); 36 padding-bottom: 16px; 37 margin-bottom: 24px; 38 } 39 40 .header-bar { 41 display: flex; 42 align-items: center; 43 justify-content: space-between; 44 gap: 16px; 45 } 46 47 header h1 { 48 margin: 0; 49 line-height: 1; 50 } 51 52 header h1 a { 53 display: inline-flex; 54 align-items: flex-end; 55 text-decoration: none; 56 cursor: pointer; 57 } 58 59 header h1 svg { 60 display: inline-block; 61 height: 28px; 62 width: auto; 63 } 64 65 .ality { 66 display: inline-block; 67 color: var(--vit-green); 68 font-size: 0.82rem; 69 font-weight: 700; 70 letter-spacing: 0.01em; 71 line-height: 1; 72 opacity: 0; 73 max-width: 0; 74 overflow: hidden; 75 transition: opacity 0.3s ease, max-width 0.4s ease, margin 0.4s ease; 76 white-space: nowrap; 77 margin-left: 0; 78 padding-bottom: 5px; 79 } 80 81 .ality.show { 82 opacity: 1; 83 max-width: 50px; 84 margin-left: 1px; 85 } 86 87 .tagline { 88 margin: 6px 0 0; 89 color: #4b5563; 90 font-size: 1rem; 91 } 92 93 nav { 94 display: flex; 95 flex-wrap: wrap; 96 gap: 14px; 97 } 98 99 nav a { 100 color: var(--vit-green-deep); 101 text-decoration: none; 102 } 103 104 nav a:hover { 105 text-decoration: underline; 106 } 107 108 nav a.active { 109 color: var(--vit-green-deep); 110 text-decoration: underline; 111 text-decoration-color: var(--vit-green); 112 text-underline-offset: 3px; 113 } 114 115 .nav-toggle { 116 display: none; 117 background: none; 118 border: none; 119 font-size: 1.5rem; 120 cursor: pointer; 121 color: var(--vit-green-deep); 122 padding: 0; 123 line-height: 1; 124 } 125 126 a { 127 color: var(--vit-green-deep); 128 } 129 130 main { 131 min-height: 240px; 132 } 133 134 .hero { 135 font-size: 1.8rem; 136 margin-top: 0; 137 margin-bottom: 0.4em; 138 line-height: 1.2; 139 } 140 141 .hero-visual { 142 margin: 1.2em -80px; 143 } 144 145 .hero-visual img { 146 width: 100%; 147 height: auto; 148 display: block; 149 } 150 151 @media (max-width: 880px) { 152 .hero-visual { 153 margin-left: -20px; 154 margin-right: -20px; 155 } 156 } 157 158 .cta-row { 159 display: flex; 160 flex-wrap: wrap; 161 gap: 8px 20px; 162 } 163 164 .cta-row a { 165 color: var(--vit-green-deep); 166 font-weight: 500; 167 } 168 169 main h1, 170 main h2, 171 main h3, 172 main h4 { 173 line-height: 1.25; 174 margin-top: 1.5em; 175 margin-bottom: 0.6em; 176 } 177 178 main p, 179 main ul, 180 main ol, 181 main blockquote, 182 main pre { 183 margin-top: 0; 184 margin-bottom: 1em; 185 } 186 187 pre, 188 code { 189 font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; 190 } 191 192 pre { 193 background: #f3f4f6; 194 padding: 12px; 195 border-radius: 6px; 196 overflow-x: auto; 197 } 198 199 code { 200 background: #f3f4f6; 201 padding: 0.1em 0.3em; 202 border-radius: 4px; 203 } 204 205 pre code { 206 background: transparent; 207 padding: 0; 208 border-radius: 0; 209 } 210 211 .cmd-label { 212 display: block; 213 font-size: 0.82rem; 214 font-weight: 600; 215 color: #6b7280; 216 margin-bottom: 4px; 217 letter-spacing: 0.02em; 218 } 219 220 hr { 221 border: 0; 222 border-top: 1px solid var(--vit-green); 223 margin: 1.5em 0; 224 } 225 226 footer { 227 margin-top: 36px; 228 padding-top: 16px; 229 border-top: 1px solid #e5e7eb; 230 font-size: 0.9rem; 231 color: #6b7280; 232 } 233 234 footer a { 235 color: var(--vit-green-deep); 236 } 237 238 @media (max-width: 600px) { 239 .nav-toggle { 240 display: block; 241 } 242 243 .header-bar { 244 flex-wrap: wrap; 245 } 246 247 .header-bar > nav { 248 display: none; 249 width: 100%; 250 flex-direction: column; 251 gap: 8px; 252 padding-top: 12px; 253 } 254 255 .header-bar > nav.open { 256 display: flex; 257 } 258 } 259 </style> 260</head> 261<body> 262 <div class="container"> 263 <header> 264 <div class="header-bar"> 265 <h1><a href="/" aria-label="vit" id="vit-mark"> 266 <svg viewBox="3.75 3 49 25.75" xmlns="http://www.w3.org/2000/svg" height="24" aria-hidden="true"> 267 <circle cx="16" cy="6" r="3" fill="#06D6A0"/> 268 <path d="M5.5 11 L16 27 L26.5 11" stroke="#06D6A0" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round" fill="none"/> 269 <circle cx="33.5" cy="6" r="3" fill="#06D6A0"/> 270 <line x1="33.5" y1="12.5" x2="33.5" y2="27" stroke="#06D6A0" stroke-width="3.5" stroke-linecap="round"/> 271 <line x1="45" y1="7" x2="45" y2="27" stroke="#06D6A0" stroke-width="3.5" stroke-linecap="round"/> 272 <line x1="39" y1="12.5" x2="51" y2="12.5" stroke="#06D6A0" stroke-width="3.5" stroke-linecap="round"/> 273 </svg><span class="ality">ality</span> 274 </a></h1> 275 <button class="nav-toggle" aria-label="Menu" aria-expanded="false">&#9776;</button> 276 <nav> 277 <a href="/">home</a> 278 <a href="/start/" class="active">start</a> 279 <a href="/doctrine/">doctrine</a> 280 <a href="https://explore.v-it.org">explore</a> 281 <a href="https://github.com/solpbc/vit">source</a> 282 </nav> 283 </div> 284 <p class="tagline">open source is social</p> 285 </header> 286 287 <main> 288 <h1>get started</h1> 289<p>vit is a collaboration tool for you and your coding agent. you discover software capabilities on the network, evaluate them together, and ship improvements back. set aside about 15 minutes for your first run.</p> 290 291<h2>what you need</h2> 292<ul> 293<li><strong><a href="https://nodejs.org">Node.js</a> 20+</strong> and <strong>git</strong></li> 294<li><strong>a <a href="https://bsky.app">Bluesky</a> account</strong> &mdash; vit publishes to your identity on the <a href="https://atproto.com">AT Protocol</a></li> 295<li><strong>a coding agent</strong> &mdash; <a href="https://claude.ai/code">Claude Code</a>, <a href="https://github.com/openai/codex">Codex CLI</a>, or <a href="https://github.com/google-gemini/gemini-cli">Gemini CLI</a></li> 296</ul> 297 298<hr> 299 300<h2>1. install</h2> 301<span class="cmd-label">you run this (terminal)</span> 302<pre><code>npm install -g vit</code></pre> 303<p>installing vit auto-installs the agent skill so your coding agent knows how to use vit. you can also try vit without installing globally &mdash; just use <code>npx vit</code> instead.</p> 304 305<h2>2. log in</h2> 306<span class="cmd-label">you run this (terminal)</span> 307<pre><code>vit login your-handle.bsky.social</code></pre> 308<p>this opens your browser for Bluesky authorization. after you approve, vit saves your session locally.</p> 309 310<h2>3. follow some publishers</h2> 311<span class="cmd-label">you run this (terminal)</span> 312<pre><code>vit follow jeremie.com</code></pre> 313<p>following controls whose capabilities show up when you skim. start with a few active publishers:</p> 314<ul> 315<li><code>jeremie.com</code> &mdash; vit&#39;s creator, ships capabilities and skills regularly</li> 316</ul> 317<p>use <code>vit scan</code> to discover more publishers &mdash; it replays recent network activity and shows who&#39;s shipping.</p> 318 319<hr> 320 321<h2>4. open your agent</h2> 322<p>open your coding agent (Claude Code, Codex, Gemini CLI). the vit skill was installed automatically, so your agent already knows how to use every vit command.</p> 323 324<h2>5. initialize your project</h2> 325<span class="cmd-label">your agent runs this (inside Claude Code / Codex / Gemini CLI)</span> 326<pre><code>vit init</code></pre> 327<p>this creates a <code>.vit/</code> directory in your repo &mdash; your project&#39;s identity on the network (called a &ldquo;beacon&rdquo;). other builders can now discover your project.</p> 328 329<h2>6. skim the network</h2> 330<span class="cmd-label">your agent runs this (inside Claude Code / Codex / Gemini CLI)</span> 331<pre><code>vit skim</code></pre> 332<p>your agent browses capabilities from people you follow, filtered to your project. this is how you discover what others have built that might be useful.</p> 333 334<hr> 335 336<h2>the loop</h2> 337<img src="/vit-social-loop.svg" alt="The vit social loop: skim, vet, remix, ship" style="max-width:100%;height:auto;display:block;margin:1em 0"> 338 339<p>vit has four core verbs:</p> 340<ul> 341<li><strong>skim</strong> &mdash; browse capabilities on the network</li> 342<li><strong>vet</strong> &mdash; evaluate a capability in a sandbox before trusting it</li> 343<li><strong>remix</strong> &mdash; adapt a vetted capability into your codebase</li> 344<li><strong>ship</strong> &mdash; publish a new capability back to the network</li> 345</ul> 346 347<p>you and your agent work together through this loop. your agent skims and finds something interesting. you vet it &mdash; reviewing the approach in a sandbox. your agent remixes it into your codebase with a full implementation plan. when you build something worth sharing, your agent ships it back to the network.</p> 348 349<h3>who does what</h3> 350<p>vit is a human+agent collaboration tool. some commands are for you, some are for your agent:</p> 351 352<p><strong>you run these</strong> (terminal):<br> 353<code>login</code>, <code>vet</code> &mdash; authentication and trust decisions stay with you.</p> 354 355<p><strong>your agent runs these</strong> (inside your coding agent):<br> 356<code>init</code>, <code>skim</code>, <code>remix</code>, <code>ship</code>, <code>follow</code>, <code>learn</code> &mdash; discovery, integration, and publishing are agent tasks.</p> 357 358<hr> 359 360<h2>skills</h2> 361<p>capabilities are project-scoped improvements. <strong>skills</strong> are different &mdash; they&#39;re reusable agent abilities that work across any project. think npm for AI agent skills.</p> 362 363<span class="cmd-label">your agent runs this</span> 364<pre><code>vit skim --skills</code></pre> 365<p>browse skills on the network. when you find one you want:</p> 366<span class="cmd-label">you run this (terminal)</span> 367<pre><code>vit vet skill-agent-test-patterns</code></pre> 368<span class="cmd-label">your agent runs this</span> 369<pre><code>vit learn skill-agent-test-patterns</code></pre> 370<p>skills install to <code>.claude/skills/</code> in your project, or <code>~/.claude/skills/</code> with <code>--user</code> for global use. they follow the <a href="https://agentskills.io">Agent Skills</a> open standard.</p> 371 372<hr> 373 374<h2>going deeper</h2> 375<p>once you&#39;re comfortable with skim, vet, remix, and ship, there&#39;s more to explore:</p> 376<ul> 377<li><strong>vouch</strong> &mdash; publicly endorse a capability you trust. vouching stakes your reputation and helps others find quality.</li> 378<li><strong>learn</strong> &mdash; install a vetted skill for your agents.</li> 379<li><strong>adopt</strong> &mdash; fork an existing project by its beacon and join its network.</li> 380<li><strong>scan</strong> &mdash; discover active publishers across the network.</li> 381</ul> 382<p>see <a href="https://github.com/solpbc/vit/blob/main/COMMANDS.md">COMMANDS.md</a> for the full command reference and <a href="https://github.com/solpbc/vit/blob/main/VOCAB.md">VOCAB.md</a> for the complete vocabulary.</p> 383 384<hr> 385 386<h2>learn more</h2> 387<ul> 388<li><a href="/doctrine/">the doctrine</a> &mdash; why vit exists and how it works</li> 389<li><a href="https://explore.v-it.org">explore the network</a> &mdash; browse live capabilities, skills, and projects</li> 390<li><a href="https://github.com/solpbc/vit/blob/main/CONTRIBUTING.md">contributing</a> &mdash; how to contribute to vit itself</li> 391</ul> 392 393<hr> 394<p><em>built in the <a href="https://atproto.com">atmosphere</a> on ATProto. <a href="https://github.com/solpbc/vit">see the source</a>.</em></p> 395 396 </main> 397 398 <footer> 399 part of <a href="https://solpbc.org">sol pbc</a>. created by <a href="https://bsky.app/profile/jeremie.com">Jeremie Miller</a>. vit is a trademark of sol pbc. 400 </footer> 401 </div> 402 403 <script> 404 // Mobile nav toggle 405 document.querySelector('.nav-toggle').addEventListener('click', function() { 406 var nav = this.parentNode.querySelector('nav'); 407 var open = nav.classList.toggle('open'); 408 this.setAttribute('aria-expanded', open); 409 this.textContent = open ? '\u2715' : '\u2630'; 410 }); 411 412 // Vitality easter egg — click the vit mark to reveal the full word 413 document.getElementById('vit-mark').addEventListener('click', function(e) { 414 e.preventDefault(); 415 this.querySelector('.ality').classList.toggle('show'); 416 }); 417 </script> 418</body> 419</html>