Skip to content
cccskills
FreePublished on GitHub

captp

CapTP: Capability Transfer Protocol

The English summary is being prepared. Showing the original description.

See how to install

Files included (2)

  • SKILL.md5.8 KB
  • CONCOMITANT_SKILLS.md5.7 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

CapTP: Capability Transfer Protocol

Trit: 0 (ERGODIC - transports capabilities without amplification) Color: #46F27F (Coordinator stream) Source: Spritely Goblins (codeberg.org/spritely/goblins)


Overview

CapTP (Capability Transfer Protocol) enables distributed object programming with capability security. Objects can live anywhere on the network; CapTP abstracts location so programmers focus on object interaction, not protocol architecture.

Core principle: Capabilities are unforgeable references. You can only invoke what you've been given.


Key Concepts

Vats (Actor Containers)

;; Guile Goblins
(define vat (spawn-vat))
(define greeter (vat-spawn vat ^greeter))
ConceptDescriptionTrit Mapping
VatTransactional actor container0 (ergodic boundary)
ActorEncapsulated object with behavior+1 (generative)
CapabilityUnforgeable reference-1 (constraining)

Promise Pipelining

;; Don't wait for result - pipeline through promises
(<- (<- alice 'get-friend) 'greet "Hello")

Reduces round-trips: send message to promise, network resolves.

Sturdy vs Live References

ReferencePersistenceUse Case
LiveSession onlyActive communication
SturdySurvives restartReconnection, storage

CapTP Message Types

op:deliver-only  → Fire-and-forget message
op:deliver       → Message expecting response
op:pick          → Select from multiple promises
op:abort         → Cancel pending operation
op:listen        → Subscribe to updates
op:gc            → Garbage collection hint

GF(3) Triads

# Core CapTP Bundle
keychain-secure (-1) ⊗ captp (0) ⊗ gay-mcp (+1) = 0 ✓  [Secure Transport]
shadow-goblin (-1) ⊗ captp (0) ⊗ agent-o-rama (+1) = 0 ✓  [Distributed Actors]
polyglot-spi (-1) ⊗ captp (0) ⊗ pulse-mcp-stream (+1) = 0 ✓  [Cross-Lang Objects]
temporal-coalgebra (-1) ⊗ captp (0) ⊗ koopman-generator (+1) = 0 ✓  [State Observation]

# Goblins Integration
three-match (-1) ⊗ captp (0) ⊗ gay-mcp (+1) = 0 ✓  [Colored Capabilities]
sheaf-cohomology (-1) ⊗ captp (0) ⊗ operad-compose (+1) = 0 ✓  [Compositional]

Implementation Bridge

Mapping to Our Goblins

SpritelyOur SystemFunction
spawn-vatSplitMixTernary.new(seed)Create isolated generator
<- (send)next_color!Advance state, get result
$ (call)color_at(idx)Synchronous access
Sturdy ref(seed, index) tupleReconstructable reference
PromiseDerivation chainFuture state determined by seed

Ruby Integration

require 'captp'

# Create vat (generator with transactional boundary)
vat = CapTP::Vat.new(seed: 0x42D)

# Spawn actor (color stream)
actor = vat.spawn(:color_stream)

# Send message (advance stream)
promise = actor.send(:next_color)

# Pipeline (derive without waiting)
result = actor.send(:palette, 5).then { |colors| colors.map(&:hex) }

Scheme Integration (Hoot target)

(use-modules (goblins) (goblins actor-lib cell))

;; Define actor constructor
(define (^color-stream bcom seed)
  (define idx (spawn ^cell 0))
  (lambda (method . args)
    (case method
      ((next-color)
       (let ((i ($ idx)))
         ($ idx (+ i 1))
         (color-at seed i)))
      ((palette)
       (map (lambda (i) (color-at seed i))
            (iota (car args)))))))

;; Spawn in vat
(define stream (spawn ^color-stream 1069))
(<- stream 'next-color)  ;; => promise of color

Netlayers

LayerTransportUse Case
Tor Onion.onion addressesAnonymous, censorship-resistant
TCP DirectIP:portLocal network, low latency
WebSocketwss://Browser-based (Hoot target)
NATSnats://High-throughput pub/sub
Tailscale100.x.y.zMesh VPN, zero-config

Security Model

Principle of Least Authority (POLA)

You can only:
1. Use capabilities you were given
2. Create new objects (that you then have caps to)
3. Introduce objects you have caps to, to each other

Attenuation

# Full capability
full_stream = vat.spawn(:color_stream, seed: 0x42D)

# Attenuated: read-only, no advance
read_only = full_stream.attenuate(:color_at)

# Attenuated: limited palette size
limited = full_stream.attenuate(:palette, max: 10)

Commands

just captp-vat seed=1069        # Create vat with seed
just captp-spawn actor_type     # Spawn actor in vat
just captp-send actor method    # Send message
just captp-pipeline expr        # Pipeline expression
just captp-sturdy actor         # Get sturdy reference

Related Skills

SkillRelation
localsend-mcpP2P file transfer via CapTP-like protocol
tailscale-file-transferMesh VPN netlayer
keychain-secureCredential capabilities
shadow-goblinValidates capability boundaries
agent-o-ramaGenerates actor proposals

References


Skill Name: captp Type: Distributed Object Protocol Trit: 0 (ERGODIC) GF(3): Transports capabilities without amplification Invariant: Capabilities unforgeable, only invoke what you're given

REPL atlas

Part of: repl-commons (REPL-using skills intermix).

ACP atlas

Part of: acp-commons.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Model ElevenLabs voice synthesis as an ACSet schema with Unison ability handlers for typed voice operations. Use when integrating ElevenLabs TTS into category-theoretic pipelines, building typed voice synthesis workflows, or managing multi-voice narration with GF(3) conservation.

The English summary is being prepared. Showing the original description.

plurigrid/asi70Updated Jul 10, 2026

Systematic process for analyzing and modernizing legacy applications to comply with the 12-Factor App methodology. Covers code analysis, configuration externalization, dependency management, and container/Kubernetes best practices.

The English summary is being prepared. Showing the original description.

plurigrid/asi70Updated Jul 10, 2026

13c0e3

Free

Gay MCP skill at invocation 26

The English summary is being prepared. Showing the original description.

plurigrid/asi70Updated Jul 10, 2026

19d57d

Free

Gay MCP skill at invocation 5

The English summary is being prepared. Showing the original description.

plurigrid/asi70Updated Jul 10, 2026

1ea91a

Free

Gay MCP skill at invocation 27

The English summary is being prepared. Showing the original description.

plurigrid/asi70Updated Jul 10, 2026

1eab21

Free

Gay MCP skill at invocation 3

The English summary is being prepared. Showing the original description.

plurigrid/asi70Updated Jul 10, 2026

See all skills by plurigrid

Report a problem with this skill