Skip to content

Repository files navigation

ShipLoop

You ship. We broadcast.

Your AI distribution assistant. It captures signal from work you're already doing, figures out what's worth broadcasting, and puts it in the right place at the right time — in your voice. You never stop building.

License: MIT


What is ShipLoop?

Broadcasting is a tax builders keep failing to pay. Not because they're lazy — because every hour on distribution is an hour stolen from building.

ShipLoop removes the friction. You dump what you shipped today in 2 minutes. The engine extracts what's worth sharing, drafts platform-specific content in your voice, and nudges you to approve. You stay in control. It handles the heavy lifting.

What it is NOT: A content scheduler. A social media manager. A copywriting tool. An auto-poster.

What it IS: A dedicated AI assistant that learns your voice over time, thinks strategically about your distribution narrative, and gets better with every approval, edit, and skip.

Quick Start

Prerequisites

  • Docker Desktop
  • Node.js 20+
  • OpenRouter API key (for content generation)
  • Anthropic API key (for Strategist agent)

1. Clone and configure

git clone https://github.com/aspect-apps/shiploop.git &&cd shiploop
cp .env.example .env

Edit .env:

OPENROUTER_API_KEY=sk-or-... # Powers Noticing + Acting agents
OPENROUTER_MODEL=anthropic/claude-sonnet-4-20250514
ANTHROPIC_API_KEY=sk-ant-... # Powers Strategist agent (Managed Agents)
JWT_SECRET=any-random-string-at-least-16-chars

2. Start Postgres

docker compose up -d

3. Start the backend

cd backend
npm install
npx drizzle-kit push # Creates all tables on first run
npm run dev

4. Start the frontend

cd frontend
npm install
npm run dev

5. Use it

  1. Open the frontend URL shown in terminal
  2. Register → complete onboarding (company type, goal, channels)
  3. Add your assets (shipped projects, tools, content)
  4. Submit a brain dump — type what you shipped today
  5. Check the Approval Queue — approve, edit, or skip drafts
  6. Run the Strategist for weekly analysis

Architecture

ShipLoop uses a mix of AI patterns — not everything is an "agent." Only the Strategist is a true agent (multi-step reasoning with tools and memory). The rest are focused LLM workflows.

Brain Dump (2 min)
↓
[NOTICING] — single LLM call: extracts opportunities, detects emotional state
↓
[ACTING] — two LLM calls: draft content + score quality (separate calls)
↓
Approval Queue — approve / edit / skip (each action trains voice profile)
↓
[STRATEGIST AGENT] — multi-step agent: reads data via tools → reasons → writes directives
↓
Better drafts next cycle (the loop compounds)

AI Components

ComponentPatternHow it runs
StrategistAgent (loop + tools + memory)Claude Managed Agents session. Calls 7 custom tools to read/write Postgres. Reasons over weeks of data. The only true agent.
NoticingLLM workflow (zero-shot, single call)One call to OpenRouter. Input: brain dump + context. Output: structured JSON. No tools, no memory, no loop.
ActingLLM workflow (few-shot, two calls)Draft call + separate scoring call via OpenRouter. Assembles voice profile as few-shot context. No loop.
Edit Diff AnalysisLLM workflow (zero-shot, single call)Categorizes what the user changed. Fires after edit+approve.
ReviewingLLM workflow (planned)Will parse engagement data and generate weekly summary. Single call.

Four Company Types

TypeDistribution characterSilence threshold
Service CompanyNarrative coherence — last 10 posts tell one story14 days
SaaS / ProductFunnel-feeding — awareness → education → conversion7 days
Solo CreatorNever go dark — presence is the product3 days
Indie BuilderThe process IS the content — struggles + wins10 days

Voice Profile Learning

Every interaction trains the engine:

  • Approve (weight 1.0) — "more like this"
  • Edit (weight 2.0) — strongest signal, AI categorizes what you changed
  • Skip (weight 1.5) — "don't do this again" with reason
  • Engagement (weight 0.5) — what the audience responded to

Profiles are per-platform with recency weighting (5% decay/week). Week 1: generic drafts. Month 3: sounds like you.

Why Claude Managed Agents for the Strategist?

The Strategist is the only true agent in ShipLoop. Noticing and Acting are LLM workflows — input in, output out. The Strategist needs to reason across multiple data sources, decide which data to read based on what it finds, and produce structured decisions. That's an agent problem, not a prompt problem.

We evaluated three approaches:

ApproachProsCons
Single LLM call (dump all data into one prompt)Simple, fastContext window limits at scale. Can't read data conditionally. No tool use.
Custom agent loop (build our own tool-calling loop)Full controlWe'd build what Anthropic already built — tool execution, state management, retries, compaction. Maintenance burden.
Claude Managed AgentsManaged infrastructure, built-in tool execution, persistent sessions, automatic compactionBeta API. Vendor dependency. Opus cost.

We chose Managed Agents because:

  1. The Strategist's job is open-ended reasoning. It reads its own prior monologues, cross-references posts against approval patterns, and detects narrative drift. That reasoning path isn't predictable — the agent needs to decide which tools to call and in what order based on what it finds. A single prompt can't do this well.

  2. Custom tools keep our data local. The agent runs in Anthropic's cloud but can only access our Postgres through 7 custom tools we defined. It can't run bash, read files, or access the network. We control exactly what data it sees and what it can write.

  3. We don't want to maintain an agent runtime. Tool execution, error recovery, context compaction, heartbeating — Managed Agents handles all of this. We focus on the tools and the prompt, not the infrastructure.

  4. The operational agents stay on OpenRouter. Only the Strategist uses Managed Agents (and Opus). Noticing, Acting, and Reviewing use OpenRouter with configurable models. This keeps operational costs low while giving the Strategist the reasoning depth it needs.

Trade-off acknowledged: Managed Agents is in beta. If the API changes or pricing becomes prohibitive, we can fall back to a custom agent loop using the same tool handlers — they're just Postgres queries. The tools are the stable interface; the runtime is swappable.

Tech Stack

ComponentTechnology
BackendFastify, TypeScript
FrontendNext.js 14, Tailwind CSS
DatabasePostgreSQL 16 (Docker), Drizzle ORM
AI (operational)OpenRouter (configurable model)
AI (strategic)Anthropic Claude Managed Agents
AuthJWT (database-backed, designed for future Cognito swap)

What's Built

ComponentStatus
Database (12 tables)Done
Auth (register + login + JWT)Done
Brain dump pipeline (Noticing + Acting)Done
AI retry with JSON validationDone
Approval queue (approve/edit/skip)Done
Edit diff analysisDone
Voice profile trackingDone
Strategist Agent (Managed Agents)Done
Assets managementDone
Onboarding wizardDone
Posted content trackingDone

What's Next

  • Reviewing workflow (signal collection)
  • Weekly summary generation
  • Voice input (Whisper)
  • Voice profile aggregation (distilled summaries at scale)
  • Platform connectors (auto-publish / auto-retrieve)
  • Burnout protocol + evergreen bank

Documentation

Full product specification in __docs/:

DocContents
01 — Vision & ProblemLiving engine concept, 5 core properties
02 — Agent Architecture4 agents, pipeline, human interaction, error recovery
03 — Company Types4 types, onboarding, multi-user path
04 — Simulations13 scenarios, 20 refinements
05 — Technical SpecSchema, stack, build order
06 — Cost AnalysisShipLoop vs full-time person (INR)
07 — AI Patterns13 touchpoints, 6 patterns
08 — Market ResearchCompetitors, demand, pricing, risks

AI viability tests in __tests/:

  • Voice profile (few-shot + review-and-regenerate)
  • Strategist reasoning (multi-step agent with tools)
  • Noticing extraction (zero-shot accuracy)
  • Confidence calibration (score correlation)

License

MIT — Built by AppGambit

About

Your AI distribution assistant. It captures signal from work you're already doing, figures out what's worth broadcasting, and puts it in the right place at the right time — in your voice.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages