Catalog PyPI
PACKAGE EXPLORERView in registry

agent-puter

PyPI

Autonomous AI consulting agency — a swarm of specialized agents built on pydantic-ai, litellm, and Puter.js

Versions collected1
Direct dependencies11From release 1.3.1
Last observed20 Oct, 23:02 UTC

README

Version 1.3.1 documentation
logo

Agent-Puter

Autonomous AI Consulting Agency — Business in a Box

A fully autonomous AI consulting agency powered by a swarm of specialized LLM agents, a Starlette REST API, and a Next.js client portal with a subscription-credit billing model.

Python Next.js PyPI License: MIT uv


What is Agent-Puter?

Agent-Puter is a self-contained, production-ready AI consulting agency platform. A client visits the portal, describes their project in plain English, receives an AI-generated proposal, and uses subscription credits to kick off the autonomous agent swarm. A team of specialized AI agents handles everything — research, engineering, QA — then delivers a live demo.

Client visits portal
      │
      ▼
/consult  ←── Sales Agent (live AI chat, scopes the project)
      │
      ▼
/proposal ←── Proposal (problem/solution, plan, ETA, credit cost)
      │
      ▼
Execute with credits ←── Deduct credits from subscription balance
      │
      ▼  ← Agent Swarm kicks off autonomously ──────────────────────┐
      │                                                               │
      │  CEO ──► PM ──► Engineer / Researcher ──► QA ──► CEO approves│
      │                                                               │
      ◄───────────────────────────────────────────────────────────────┘
      │
      ▼
/demo  ←── Auto-deployed sandbox delivery
      │
      ▼
/status ←── Real-time task progress tracker (auto-refreshes every 8s)

Architecture

Three components, one docker compose up:

┌─────────────────────────────────────────────────┐
│  frontend/          Next.js 16  (port 3000)      │
│  ├── /                Landing page               │
│  ├── /consult         AI consultation chat (SSE) │
│  ├── /dashboard       User dashboard & projects  │
│  ├── /proposal/[id]   Proposal + credit CTA      │
│  ├── /billing         Subscription & credit mgmt │
│  ├── /demo/[id]       Sandbox demo viewer        │
│  └── /status/[id]     Live progress tracker      │
│                                                  │
│  lib/api.ts           Typed REST API client      │
│  lib/auth.ts          GitHub OAuth session       │
│  lib/billing.ts       Client-side billing mock   │
└─────────────────────┬───────────────────────────┘
                      │  REST / JSON
                      ▼
┌─────────────────────────────────────────────────┐
│  src/agent_puter/swarm/   Starlette  (port 9999) │
│                                                  │
│  ── Client API ──────────────────────────────── │
│  GET  /api/auth/github                           │
│  GET  /api/auth/callback                         │
│  GET  /api/auth/me                               │
│  POST /api/auth/logout                           │
│  POST /api/consult/start                         │
│  POST /api/consult/{id}/message                  │
│  POST /api/consult/{id}/stream      (SSE)        │
│  GET  /api/consult/{id}                          │
│  POST /api/consult/{id}/complete                 │
│  GET  /api/projects                              │
│  GET  /api/projects/{id}                         │
│  GET  /api/projects/{id}/proposal                │
│  POST /api/projects/{id}/demo-url                │
│  GET  /api/projects/{id}/demo                    │
│  GET  /api/projects/{id}/usage                   │
│  POST /api/projects/{id}/push-github             │
│  POST /api/payments/deposit                      │
│  POST /api/payments/final                        │
│  POST /api/payments/webhook                      │
│  GET  /api/payments/{id}/status                  │
│  GET  /api/admin/*   (X-Admin-Key required)      │
│                                                  │
│  ── Agent A2A Endpoints ─────────────────────── │
│  /              CEO Agent (root)                 │
│  /sales/*       Sales Agent                      │
│  /pm/*          Project Manager                  │
│  /product-manager/* Product Manager Agent        │
│  /researcher/*  Researcher                       │
│  /engineer/*    Engineer                         │
│  /qa/*          QA Agent                         │
│  /deliveries/*  Static sandbox files             │
└─────────────────────────────────────────────────┘

The Agent Swarm

Seven specialized agents, each a self-contained A2A ASGI app:

AgentMountRoleKey Tools
CEO/Strategic goals, token budgets, final approvalallocate_budget, approve_delivery, publish_goal
Sales/salesClient intake, project brief creationcreate_project_brief, send_proposal
PM/pmTask decomposition, milestone trackingcreate_task_list, update_task_status
Product Manager/product-managerUser stories, acceptance criteriawrite_user_stories, prioritize_features
Researcher/researcherWeb research, document summarizationweb_search, summarize_docs
Engineer/engineerCode generation, file I/O, sandbox deploywrite_file, read_file, run_tests, deploy_to_sandbox
QA/qaOutput review, PASS/FAIL verdictsreview_output, check_standards

All inter-agent calls use the A2A protocol (HTTP via fasta2a.A2AClient). No direct Python .run() calls between agents — every agent is addressed only by its mounted HTTP URL.


Subscription & Credit Model

Project execution is billed in credits drawn from a subscription balance. All billing state is managed client-side via localStorage (frontend mock — no backend billing calls).

Plans

PlanPriceCredits / Month
Free$00 — purchase credits to execute
Starter$49/month30
Pro$149/month100
Business$399/month300

Credits roll over; they do not expire. Monthly grants accumulate on top of your existing balance.

Credit Packs (paid plans only)

Top-up credits are available on Starter, Pro, and Business plans. The Free tier cannot purchase packs.

PackCreditsPrice
Starter pack10$12
Standard pack30$32
Power pack100$99

Per-Million Token Pricing

Credits are calculated from the proposal's estimated hours using the same per-million-token structure as LLM providers:

Token typeRate
Input tokens3 credits / 1M tokens
Output tokens15 credits / 1M tokens
Throughput estimate75,000 tokens / hour of agent work
Input/output ratio70% input, 30% output

Formula: totalCredits = (inputTokens / 1M × 3) + (outputTokens / 1M × 15)


Quick Start

Prerequisites

  • uv — Python package manager
  • Node.js 20+ and npm
  • A Puter.js account for free LLM inference (or any OpenAI-compatible API)
  • A Stripe account (test keys work fine)
  • A GitHub OAuth App (optional — required for the login button and GitHub delivery features)

1. Clone and configure

git clone https://github.com/vizionik25/agent-puter.git
cd agent-puter
cp .env.example .env
# Edit .env: fill in PUTER_AUTH_TOKEN, PUTER_MODEL, PUTER_API_BASE,
#             Stripe keys, and (optional) GitHub OAuth vars

GitHub login (optional): Create an OAuth App at github.com/settings/developers. Set the callback URL to http://localhost:3000/api/auth/callback. Copy the client ID and secret into GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET in .env. Set SESSION_SECRET to any strong random string.

2. Start the backend

uv sync
uv run agent-puter
# → http://localhost:9999
# → http://localhost:9999/health   (swarm status)
# → http://localhost:9999/docs     (CEO agent interactive docs)

Or install from PyPI and run globally:

uv tool install agent-puter
agent-puter

3. Start the frontend

cd frontend
npm install
npm run dev
# → http://localhost:3000

4. (Optional) Stripe webhook for local testing

stripe listen --forward-to localhost:9999/api/payments/webhook

Docker — full stack

cp .env.example .env   # fill in secrets
docker compose up --build -d
# Frontend: http://localhost:3000
# Backend:  http://localhost:9999

Environment Variables

VariableRequiredDefaultDescription
PUTER_AUTH_TOKENYes—Puter.js session token (used as LLM API key)
PUTER_MODELYes—LiteLLM model string, e.g. openai/claude-sonnet-4-5
PUTER_API_BASEYes—LLM endpoint, e.g. https://api.puter.com/puterai/openai/v1
STRIPE_SECRET_KEYNo—Stripe secret key (sk_test_...)
STRIPE_PUBLISHABLE_KEYNo—Stripe publishable key (pk_test_...)
STRIPE_WEBHOOK_SECRETNo—Stripe webhook signing secret (whsec_...)
NEXT_PUBLIC_API_URLNo""Frontend → backend URL. Empty = relative /api/* (Docker). Set to http://localhost:9999 for local dev.
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEYNo—Stripe publishable key for frontend Stripe Elements
STORAGE_BACKENDNomemorymemory, json_file, or puter_kv
STORAGE_PATHNo./data/store.jsonPath for json_file backend
PUTER_KV_BASENohttps://api.puter.com/kvOverride for puter_kv backend endpoint
ADMIN_API_KEYNo—Protects all /api/admin/* routes. Unset = admin disabled.
AGENCY_API_KEYSNo—Multi-tenancy: key1:tenant1,key2:tenant2
SMTP_HOSTNo—SMTP server for email notifications
SMTP_PORTNo587SMTP port
SMTP_USERNo—SMTP login
SMTP_PASSNo—SMTP password or app password
FROM_EMAILNoSMTP_USERSender address for notifications
FRONTEND_URLNohttp://localhost:3000Base URL for email action links
GITHUB_CLIENT_IDNo—GitHub OAuth App client ID. Required for GitHub login.
GITHUB_CLIENT_SECRETNo—GitHub OAuth App client secret. Required for GitHub login.
SESSION_SECRETNorandomHMAC key for signing session tokens. Set to a strong random string in production.
MCP_SERVER_URLNo—MCP server URL; enables MCP tools on Researcher + Engineer

Project Structure

agent-puter/
├── src/agent_puter/
│   ├── __init__.py
│   ├── agent-logic-example.py       Single-agent reference example
│   └── swarm/
│       ├── main.py                  Starlette app — mounts agents + API
│       ├── server.py                uvicorn launcher
│       ├── agency.py                Agency orchestrator (business loop)
│       ├── models.py                Pydantic data models
│       ├── base_agent.py            LiteLLMModel factory
│       ├── middleware.py            Multi-tenancy (X-Agency-Key)
│       ├── notifications.py         SMTP email notifications
│       ├── ceo_agent.py
│       ├── sales_agent.py
│       ├── pm_agent.py
│       ├── product_manager_agent.py
│       ├── researcher_agent.py
│       ├── engineer_agent.py
│       ├── qa_agent.py
│       └── api/
│           ├── __init__.py          Aggregates all API routes
│           ├── _store.py            Legacy alias (delegates to store.py)
│           ├── store.py             Pluggable storage backends
│           ├── auth.py              /api/auth/* routes (GitHub OAuth)
│           ├── consultation.py      /api/consult/* routes
│           ├── github_delivery.py   Push deliverables to GitHub repo
│           ├── projects.py          /api/projects/* routes
│           ├── payments.py          /api/payments/* routes
│           └── admin.py             /api/admin/* routes
│
├── frontend/
│   ├── app/
│   │   ├── layout.tsx               Root layout + nav + UserMenu
│   │   ├── page.tsx                 Landing page
│   │   ├── consult/page.tsx         Consultation chat (SSE streaming)
│   │   ├── dashboard/page.tsx       User dashboard & project management
│   │   ├── proposal/[id]/page.tsx   Proposal + credit execution CTA
│   │   ├── billing/page.tsx         Subscription & credit management
│   │   ├── demo/[id]/page.tsx       Sandbox demo viewer
│   │   └── status/[id]/page.tsx     Real-time task progress
│   ├── components/
│   │   ├── UserMenu.tsx             GitHub auth nav menu + dropdown
│   │   └── MockStripeModal.tsx      Simulated payment modal
│   ├── lib/
│   │   ├── api.ts                   Typed REST client
│   │   ├── auth.ts                  GitHub OAuth session helpers
│   │   └── billing.ts               Client-side billing (localStorage)
│   └── next.config.ts               Standalone output mode
│
├── Dockerfile                       Backend multi-stage build
├── frontend/Dockerfile              Frontend multi-stage build (Node 22)
├── docker-compose.yml               Full stack
├── docker-compose.backend.yml       Backend only
├── pyproject.toml
└── .env.example

Docs

  • Architecture — system design, agent communication, data flow, storage
  • API Reference — every endpoint with request/response tables
  • Getting Started — local dev setup, first consultation walkthrough
  • Deployment — Docker Compose, environment reference, Stripe production

License

MIT © 2026 Charles Nichols — vizionikmedia.com

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
1.3.15 Apr 202611

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 23:02 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:f150e6e30f9b381d8c5f3bb392f7ae30c5f7e2ba95304bce5a5b32125abef56a