cd /news/ai-products/ai-permissioned-coworker-framework-a… · home topics ai-products article
[ARTICLE · art-127956] src=eisenzopf.github.io ↗ pub= topic=ai-products verified=true sentiment=· neutral

AI permissioned coworker framework and designs

Thelve released @thelve/coworkers, an npm package of 14 inline-SVG avatar shapes for giving AI coworkers a face, with no dependencies, no build step, and no image assets. The library hashes each coworker's name to a stable shape and hue, supports overrides via shape and hue parameters, and ships React bindings through @thelve/coworkers/react. CSS keyframes for idle float, specular drift, and blink honor prefers-reduced-motion, and every gradient id is namespaced per instance to avoid collisions.

read1 min views3 publishedSep 12, 2026

The cast #

Pick one to inspect & recolor

Avatar kit · soft-body renders · v1

Fourteen shapes for giving AI coworkers a face. Each one is a single inline SVG — lit from the upper left, with a bounce rim off the lower right — so it holds its volume from 16 px in a list to 200 px on a profile.

Shape and hue derived from the coworker's name, so they stay stable across sessions

Overlapped at 44 px the silhouettes stay separable without a ring or a border — that's what the different shapes buy you. A page of same-shaped circles needs colour alone to carry the difference.

Flat is a destination, not a degraded render — every stop is somewhere worth landing

No dependencies, no build step, no image assets

Install

npm i @thelve/coworkers

One coworker

import { avatarSVG } from "@thelve/coworkers";
import "@thelve/coworkers/avatar.css";

el.innerHTML = avatarSVG({ name: "Call QA" });

React

import { Avatar } from "@thelve/coworkers/react";
import "@thelve/coworkers/avatar.css";

<Avatar name={coworker.name} size={36} />

Overriding

avatarSVG({ shape: "bean", hue: 174, size: 96 })
avatarSVG({ name: "Inbox Triage", eyes: false })

avatarSVG({ name: 'Call QA' }) returns a complete SVG string — shape and hue hashed from the name, so the same coworker looks the same everywhere. Pass shape and hue to override.

Wrap it: <span dangerouslySetInnerHTML={{__html: avatarSVG({name, size})}} />. Every gradient id is namespaced per instance, so a hundred on one page never collide.

The SVG has no intrinsic size — set width/ height in CSS. Idle float, specular drift and blink are CSS keyframes on .av-body, .av-spec and .av-eyes; they already honour prefers-reduced-motion.

── more in #ai-products 4 stories · sorted by recency
── more on @thelve 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/ai-permissioned-cowo…] indexed:0 read:1min 2026-09-12 ·