|
223 | 223 | } |
224 | 224 |
|
225 | 225 | #clients .interface-tabs, |
226 | | - #clients .client-tabs { |
| 226 | + #clients .mcp-tabs, |
| 227 | + #cli .cli-tabs, |
| 228 | + #skill .skill-tabs { |
227 | 229 | background: var(--surface-inset); |
228 | 230 | border-radius: 0.5rem; |
229 | 231 | overflow: hidden; |
230 | 232 | } |
231 | 233 |
|
232 | | - #clients .tab-buttons { |
| 234 | + #clients .mcp-tabs .tab-buttons, |
| 235 | + #cli .cli-tabs .tab-buttons, |
| 236 | + #skill .skill-tabs .tab-buttons { |
233 | 237 | display: flex; |
234 | 238 | border-bottom: 1px solid var(--border); |
235 | 239 | } |
236 | 240 |
|
237 | | - #clients .tab-button { |
| 241 | + #clients .mcp-tabs .tab-button, |
| 242 | + #cli .cli-tabs .tab-button, |
| 243 | + #skill .skill-tabs .tab-button { |
238 | 244 | flex: 1; |
239 | 245 | padding: 1rem 1.5rem; |
240 | 246 | background: transparent; |
|
247 | 253 | border-bottom: 2px solid transparent; |
248 | 254 | } |
249 | 255 |
|
250 | | - #clients .tab-button:hover { |
| 256 | + #clients .mcp-tabs .tab-button:hover, |
| 257 | + #cli .cli-tabs .tab-button:hover, |
| 258 | + #skill .skill-tabs .tab-button:hover { |
251 | 259 | color: var(--text); |
252 | 260 | background: var(--surface-inset-deep); |
253 | 261 | } |
254 | 262 |
|
255 | | - #clients .tab-button.active { |
| 263 | + #clients .mcp-tabs .tab-button.active, |
| 264 | + #cli .cli-tabs .tab-button.active, |
| 265 | + #skill .skill-tabs .tab-button.active { |
256 | 266 | color: var(--text); |
257 | 267 | border-bottom-color: var(--accent); |
258 | 268 | background: var(--surface); |
259 | 269 | } |
260 | 270 |
|
261 | | - #clients .tab-content { |
| 271 | + #clients .mcp-tabs .tab-content, |
| 272 | + #skill .skill-tabs .tab-content { |
262 | 273 | position: relative; |
263 | 274 | } |
264 | 275 |
|
265 | | - #clients .tab-pane { |
| 276 | + #clients .mcp-tabs .tab-pane, |
| 277 | + #cli .cli-tabs .tab-pane, |
| 278 | + #skill .skill-tabs .tab-pane { |
266 | 279 | display: none; |
267 | 280 | padding: 1.5rem; |
268 | 281 | } |
269 | 282 |
|
270 | | - #clients .tab-pane.active { |
| 283 | + #clients .mcp-tabs .tab-pane.active, |
| 284 | + #cli .cli-tabs .tab-pane.active, |
| 285 | + #skill .skill-tabs .tab-pane.active { |
271 | 286 | display: block; |
272 | 287 | } |
273 | 288 |
|
274 | | - #clients .tab-pane h3 { |
| 289 | + #clients .mcp-tabs .tab-pane h3 { |
275 | 290 | margin-top: 0; |
276 | 291 | margin-bottom: 1rem; |
277 | 292 | color: var(--text); |
278 | 293 | } |
279 | 294 |
|
280 | | - #clients .tab-pane h4 { |
| 295 | + #clients .mcp-tabs .tab-pane h4 { |
281 | 296 | margin-top: 1.5rem; |
282 | 297 | margin-bottom: 0.75rem; |
283 | 298 | color: var(--text-secondary); |
284 | 299 | font-size: 1rem; |
285 | 300 | } |
286 | 301 |
|
287 | | - #clients .tab-pane ol { |
| 302 | + #clients .mcp-tabs .tab-pane ol { |
288 | 303 | margin: 0.75rem 0; |
289 | 304 | padding-left: 1.5rem; |
290 | 305 | } |
291 | 306 |
|
292 | | - #clients .tab-pane li { |
| 307 | + #clients .mcp-tabs .tab-pane li { |
293 | 308 | margin-bottom: 0.5rem; |
294 | 309 | } |
295 | 310 |
|
296 | | - #clients .tab-pane p { |
| 311 | + #clients .mcp-tabs .tab-pane p, |
| 312 | + #cli .cli-tabs .tab-pane p, |
| 313 | + #skill .skill-tabs .tab-pane p { |
297 | 314 | margin: 0.75rem 0; |
298 | 315 | } |
299 | 316 |
|
300 | | - #clients .tab-pane em { |
| 317 | + #clients .mcp-tabs .tab-pane em { |
301 | 318 | color: var(--text-secondary); |
302 | 319 | font-style: italic; |
303 | 320 | } |
304 | 321 |
|
305 | | - #cli .runtime-tabs { |
306 | | - background: var(--surface-inset); |
307 | | - border-radius: 0.5rem; |
308 | | - overflow: hidden; |
| 322 | + #cli .cli-tabs { |
309 | 323 | margin-top: 1.5rem; |
310 | 324 | } |
311 | 325 |
|
312 | | - #cli .runtime-tabs .tab-buttons { |
313 | | - display: flex; |
314 | | - border-bottom: 1px solid var(--border); |
315 | | - } |
316 | | - |
317 | | - #cli .runtime-tabs .tab-button { |
318 | | - flex: 1; |
319 | | - padding: 0.75rem 1.5rem; |
320 | | - background: transparent; |
321 | | - border: none; |
322 | | - color: var(--text-secondary); |
323 | | - font-family: var(--font-sans); |
324 | | - font-size: 1rem; |
325 | | - cursor: pointer; |
326 | | - transition: all 0.2s ease; |
327 | | - border-bottom: 2px solid transparent; |
328 | | - } |
329 | | - |
330 | | - #cli .runtime-tabs .tab-button:hover { |
331 | | - color: var(--text); |
332 | | - background: var(--surface-inset-deep); |
333 | | - } |
334 | | - |
335 | | - #cli .runtime-tabs .tab-button.active { |
336 | | - color: var(--text); |
337 | | - border-bottom-color: var(--accent); |
338 | | - background: var(--surface); |
339 | | - } |
340 | | - |
341 | | - #cli .runtime-tabs .tab-pane { |
342 | | - display: none; |
343 | | - padding: 1.5rem; |
344 | | - } |
345 | | - |
346 | | - #cli .runtime-tabs .tab-pane.active { |
347 | | - display: block; |
348 | | - } |
349 | | - |
350 | | - #cli .runtime-tabs .tab-pane p { |
351 | | - margin: 0.75rem 0; |
352 | | - } |
353 | | - |
354 | 326 | @media (max-width: 768px) { |
355 | | - #clients .tab-buttons, |
356 | | - #cli .runtime-tabs .tab-buttons { |
| 327 | + #clients .mcp-tabs .tab-buttons, |
| 328 | + #cli .cli-tabs .tab-buttons, |
| 329 | + #skill .skill-tabs .tab-buttons { |
357 | 330 | flex-direction: column; |
358 | 331 | } |
359 | 332 |
|
360 | | - #clients .tab-button, |
361 | | - #cli .runtime-tabs .tab-button { |
| 333 | + #clients .mcp-tabs .tab-button, |
| 334 | + #cli .cli-tabs .tab-button, |
| 335 | + #skill .skill-tabs .tab-button { |
362 | 336 | border-bottom: 1px solid var(--border); |
363 | 337 | border-right: none; |
364 | 338 | } |
365 | 339 |
|
366 | | - #clients .tab-button.active, |
367 | | - #cli .runtime-tabs .tab-button.active { |
| 340 | + #clients .mcp-tabs .tab-button.active, |
| 341 | + #cli .cli-tabs .tab-button.active, |
| 342 | + #skill .skill-tabs .tab-button.active { |
368 | 343 | border-bottom-color: var(--border); |
369 | 344 | border-right: 2px solid var(--accent); |
370 | 345 | } |
|
484 | 459 | color: var(--code-punctuation-color); |
485 | 460 | } |
486 | 461 |
|
| 462 | + pre code .comment { |
| 463 | + color: var(--text-tertiary); |
| 464 | + font-style: italic; |
| 465 | + } |
| 466 | + |
487 | 467 | pre code .sosumi-entry { |
488 | 468 | background-color: var(--surface-inset-deep); |
489 | 469 | display: block; |
|
580 | 560 | }); |
581 | 561 | }); |
582 | 562 |
|
583 | | - document.querySelectorAll('.client-tabs, .runtime-tabs').forEach(tabGroup => { |
| 563 | + document.querySelectorAll('.mcp-tabs, .cli-tabs, .skill-tabs').forEach(tabGroup => { |
584 | 564 | const buttons = tabGroup.querySelectorAll('.tab-button'); |
585 | 565 | const panes = tabGroup.querySelectorAll('.tab-pane'); |
586 | 566 | buttons.forEach(button => { |
|
635 | 615 | This service translates Apple Developer documentation, Human Interface Guidelines, WWDC sessions, and external Swift-DocC sites into AI-friendly Markdown. |
636 | 616 | </p> |
637 | 617 | <p> |
638 | | - Access it in your <a href="#http">browser</a>, over <a href="#mcp">MCP</a>, from the <a href="#cli">command line</a>, or with an unofficial <a href="https://chromewebstore.google.com/detail/donffakeimppgoehccpfhlchmbfdmfpj" rel="noopener noreferrer">Chrome extension</a>. |
| 618 | + Access it in your <a href="#http">browser</a>, over <a href="#mcp">MCP</a>, from the <a href="#cli">command line</a>, as an <a href="#skill">AI skill</a>, or with an unofficial <a href="https://chromewebstore.google.com/detail/donffakeimppgoehccpfhlchmbfdmfpj" rel="noopener noreferrer">Chrome extension</a>. |
639 | 619 | </p> |
640 | 620 | </header> |
641 | 621 |
|
@@ -685,7 +665,7 @@ <h2>MCP Usage</h2> |
685 | 665 | </p> |
686 | 666 |
|
687 | 667 | <figure id="clients"> |
688 | | - <div class="client-tabs"> |
| 668 | + <div class="mcp-tabs"> |
689 | 669 | <div class="tab-buttons"> |
690 | 670 | <button class="tab-button active" data-tab="copilot-xcode">GitHub Copilot for Xcode</button> |
691 | 671 | <button class="tab-button" data-tab="cursor">Cursor</button> |
@@ -898,7 +878,7 @@ <h2>CLI Usage</h2> |
898 | 878 | </p> |
899 | 879 | </header> |
900 | 880 |
|
901 | | - <div class="runtime-tabs"> |
| 881 | + <div class="cli-tabs"> |
902 | 882 | <div class="tab-buttons"> |
903 | 883 | <button class="tab-button active" data-tab="rt-node">Node.js</button> |
904 | 884 | <button class="tab-button" data-tab="rt-bun">Bun</button> |
@@ -956,6 +936,60 @@ <h3>Local Server</h3> |
956 | 936 | <pre><code>sosumi serve |
957 | 937 | sosumi serve --port 8787</code></pre> |
958 | 938 | </section> |
| 939 | + |
| 940 | + <section id="skill"> |
| 941 | + <header> |
| 942 | + <h2>AI Agent Skill</h2> |
| 943 | + <p> |
| 944 | + Teach your coding assistant to use Sosumi consistently with: |
| 945 | + <code class="no-wrap"><a href="https://sosumi.ai/SKILL.md">https://sosumi.ai/SKILL.md</a></code> |
| 946 | + </p> |
| 947 | + </header> |
| 948 | + |
| 949 | + <div class="skill-tabs"> |
| 950 | + <div class="tab-buttons"> |
| 951 | + <button class="tab-button active" data-tab="skill-claude-code">Claude Code</button> |
| 952 | + <button class="tab-button" data-tab="skill-codex">Codex</button> |
| 953 | + <button class="tab-button" data-tab="skill-cursor">Cursor</button> |
| 954 | + <button class="tab-button" data-tab="skill-agents">Other</button> |
| 955 | + </div> |
| 956 | + |
| 957 | + <div class="tab-content"> |
| 958 | + <div class="tab-pane active" id="skill-claude-code-tab"> |
| 959 | + <p>Install as a reusable skill (personal or project-level):</p> |
| 960 | + <pre><code><span class="comment"># Personal skill (all your projects)</span> |
| 961 | +mkdir -p ~/.claude/skills/sosumi |
| 962 | +curl -o ~/.claude/skills/sosumi/SKILL.md https://sosumi.ai/SKILL.md |
| 963 | + |
| 964 | +<span class="comment"># Project skill (just this project)</span> |
| 965 | +mkdir -p .claude/skills/sosumi |
| 966 | +curl -o .claude/skills/sosumi/SKILL.md https://sosumi.ai/SKILL.md</code></pre> |
| 967 | + </div> |
| 968 | + |
| 969 | + <div class="tab-pane" id="skill-codex-tab"> |
| 970 | + <p>Install globally:</p> |
| 971 | + <pre><code><span class="comment"># Global instructions (all your projects)</span> |
| 972 | +curl -o ~/.codex/AGENTS.md https://sosumi.ai/SKILL.md</code></pre> |
| 973 | + </div> |
| 974 | + |
| 975 | + <div class="tab-pane" id="skill-cursor-tab"> |
| 976 | + <p>Install as a Cursor skill (global or project-level):</p> |
| 977 | + <pre><code><span class="comment"># Personal skill (all your projects)</span> |
| 978 | +mkdir -p ~/.cursor/skills/sosumi |
| 979 | +curl -o ~/.cursor/skills/sosumi/SKILL.md https://sosumi.ai/SKILL.md |
| 980 | + |
| 981 | +<span class="comment"># Project skill (just this project)</span> |
| 982 | +mkdir -p .cursor/skills/sosumi |
| 983 | +curl -o .cursor/skills/sosumi/SKILL.md https://sosumi.ai/SKILL.md</code></pre> |
| 984 | + </div> |
| 985 | + |
| 986 | + <div class="tab-pane" id="skill-agents-tab"> |
| 987 | + <p>For AGENTS-compatible tools, you can add project instructions:</p> |
| 988 | + <pre><code>curl -o AGENTS.md https://sosumi.ai/SKILL.md</code></pre> |
| 989 | + </div> |
| 990 | + </div> |
| 991 | + </div> |
| 992 | + </section> |
959 | 993 | </main> |
960 | 994 |
|
961 | 995 |
|
|
0 commit comments