Agentwire — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Agentwire (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<div align="center">
Features • Quick Start • Examples • Documentation • Integrations
<img src="examples/assets/Dash.png" alt="AgentWire Dashboard" width="800"/>
Make the invisible visible. See every message, every agent, every decision.
</div>
Multi-agent systems are opaque black boxes. When your 5-agent pipeline produces a bad result, you have no way to see:
Debugging is impossible. Optimization is guesswork.
pip install agentwire-mcp
agentwire start
# Wrap your agents (one line each)
researcher = aw.wrap(ResearchAgent(), name="researcher")
writer = aw.wrap(WriterAgent(), name="writer")
# Run your pipeline
with aw.session("blog-post-run"):
facts = researcher.run("Find quantum computing breakthroughs")
post = writer.run(facts)Open http://localhost:7433 → See everything in real-time.
<table> <tr> <td width="50%">
See messages flowing between agents as they happen. Every TASK, RESULT, ERROR, and TOOL_CALL is captured and displayed with full context.
</td> <td width="50%">
Visualize agent topology with D3 force-directed graphs. Node size = message count, edge width = message frequency. Click to filter.
</td> </tr> <tr> <td width="50%">
Step through past runs message-by-message. Progressive graph rendering shows how your system evolved. Speed control: 0.5× to 10×.
</td> <td width="50%">
Automatic token counting and USD cost calculation for Claude, GPT-4, Gemini, and more. See exactly what each agent costs.
</td> </tr> <tr> <td width="50%">
Works with LangChain, AutoGen, CrewAI, and raw API calls. One unified view across all frameworks in the same session.
</td> <td width="50%">
SQLite by default. No Docker, no Postgres, no signup required. pip install && agentwire start and you're done.
</td> </tr> </table>
pip install agentwire-mcpagentwire startThis starts:
http://localhost:7433/apiws://localhost:7433/wshttp://localhost:7433import agentwire as aw
# Configure once
aw.configure(bus_url="http://localhost:7433")
# Wrap any agent (works with any class)
researcher = aw.wrap(ResearchAgent(), name="researcher")
writer = aw.wrap(WriterAgent(), name="writer")
reviewer = aw.wrap(ReviewerAgent(), name="reviewer")
# Run with session grouping
with aw.session("blog-post-run-42", name="Blog Post Generation"):
facts = researcher.run("Find quantum computing breakthroughs")
draft = writer.run(facts)
final = reviewer.run(draft)Open http://localhost:7433 to see:
<table> <tr> <th>Feature</th> <th>AgentWire</th> <th>LangSmith</th> <th>Langfuse</th> <th>Phoenix</th> </tr> <tr> <td><strong>Traces inter-agent messages</strong></td> <td>✅</td> <td>❌</td> <td>❌</td> <td>❌</td> </tr> <tr> <td><strong>Framework-agnostic</strong></td> <td>✅</td> <td>❌</td> <td>Partial</td> <td>Partial</td> </tr> <tr> <td><strong>Session replay</strong></td> <td>✅</td> <td>❌</td> <td>❌</td> <td>❌</td> </tr> <tr> <td><strong>Zero infrastructure</strong></td> <td>✅</td> <td>❌</td> <td>❌</td> <td>❌</td> </tr> <tr> <td><strong>Open source</strong></td> <td>✅</td> <td>❌</td> <td>✅</td> <td>✅</td> </tr> <tr> <td><strong>Real-time graph</strong></td> <td>✅</td> <td>❌</td> <td>❌</td> <td>Partial</td> </tr> </table>
AgentWire focuses on the message bus abstraction - what agents say to each other - not just LLM calls.
from agentwire.integrations.langchain import AgentWireCallback
import agentwire as aw
aw.configure(bus_url="http://localhost:7433")
with aw.session("research-run"):
planner = aw.wrap(PlannerAgent(), name="planner")
researcher = aw.wrap(ResearchAgent(), name="researcher")
summarizer = aw.wrap(SummarizerAgent(), name="summarizer")
plan = planner.run("Quantum computing breakthroughs 2024")
findings = researcher.run(plan)
summary = summarizer.run(findings)from agentwire.integrations.autogen import wire_autogen_agent
import agentwire as aw
with aw.session("coding-session"):
orchestrator = aw.wrap(OrchestratorAgent(), name="orchestrator")
coder = aw.wrap(CoderAgent(), name="coder")
reviewer = aw.wrap(ReviewerAgent(), name="reviewer")
assignment = orchestrator.run("Write Fibonacci function")
code = coder.run(assignment)
review = reviewer.run(code)import agentwire as aw
with aw.session("data-pipeline"):
fetcher = aw.wrap(DataFetcher(), name="fetcher")
processor = aw.wrap(DataProcessor(), name="processor")
analyzer = aw.wrap(DataAnalyzer(), name="analyzer")
reporter = aw.wrap(Reporter(), name="reporter")
data = fetcher.run("production-db")
processed = processor.run(data)
analysis = analyzer.run(processed)
report = reporter.run(analysis)from agentwire.integrations.langchain import AgentWireCallback
agent = initialize_agent(
tools=[...],
llm=llm,
callbacks=[AgentWireCallback(agent_name="researcher")]
)from agentwire.integrations.autogen import wire_autogen_agent
wire_autogen_agent(my_agent, name="assistant", session_id="run-1")from agentwire.integrations.crewai import wire_crew
my_crew = Crew(agents=[...], tasks=[...])
wire_crew(my_crew, session_id="crew-run")
result = my_crew.kickoff()# Start server
agentwire start # Default: port 7433
agentwire start --port 8000 # Custom port
agentwire start --no-dashboard # API-only mode
# Check status
agentwire status # Show server status and stats
# Clear data
agentwire clear # Clear all (with confirmation)
agentwire clear --session abc123 # Clear specific session
agentwire clear --force # Skip confirmation
# Stop server
agentwire stop
# Docker
agentwire docker up # Start with Docker Compose
agentwire docker down # Stop containers┌─────────────────┐
│ Agent Code │ Your Python code
│ (SDK) │ aw.wrap(), aw.session()
└────────┬────────┘
│ emit()
↓
┌─────────────────┐
│ REST API │ FastAPI server
│ POST /api/ │ Store + broadcast
└────────┬────────┘
│
┌────┴────┐
↓ ↓
┌────────┐ ┌──────────┐
│ SQLite │ │WebSocket │ Real-time
│ DB │ │Broadcast │ to clients
└────────┘ └─────┬────┘
↓
┌───────────────┐
│ React │ Dashboard
│ Dashboard │ Feed + Graph
└───────────────┘# Run all tests (54 passing)
pytest tests/ -v
# Run specific test suite
pytest tests/test_bus.py -v
pytest tests/test_integrations.py -v
# Run with coverage
pytest tests/ --cov=agentwire --cov-report=html# Clone repository
git clone https://github.com/DanixMP/AgentWire.git
cd agentwire
# Install in development mode
pip install -e .
pip install -r requirements-dev.txt
# Run tests
pytest tests/
# Start dashboard dev server
cd dashboard
npm install
npm run devagentwire/
├── agentwire/ # Python package
│ ├── models.py # Data models
│ ├── store.py # Database layer
│ ├── bus.py # FastAPI server
│ ├── emitter.py # Message emission
│ ├── wrapper.py # Agent wrapping
│ ├── session.py # Session management
│ ├── cli.py # CLI tool
│ └── integrations/ # Framework integrations
├── dashboard/ # React dashboard
│ └── src/
│ ├── components/ # React components
│ ├── hooks/ # Custom hooks
│ └── types.ts # TypeScript types
├── examples/ # Example scripts
├── tests/ # Test suite
└── docs/ # DocumentationContributions are welcome! Please feel free to submit a Pull Request.
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)MIT License - see LICENSE file for details.
<div align="center">
Made with ❤️ for the multi-agent AI community
⭐ Star us on GitHub • 🐦 Follow on Twitter
</div>
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.