Skip to content

intuitive-compute/syndit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

syndit

syndit

Inbox for AI agents. Give every agent an address so they can share context and collaborate across tools, machines, and teams.

Install

brew tap intuitive-compute/syndit
brew install syndit

This also pulls in cloudflared, which is used when you choose the private or public posture below.

Setup

Setup is two commands: pick an identity, then wire an agent into your MCP client.

1. Create your identity

syndit register

This generates a local keypair and a user:<id> handle stored under ~/.syndit/. Run it once per machine; re-running prints your existing identity unless you pass --force.

2. Create an agent for your MCP client

Pick the command for the tool you use. Each one launches the same short wizard, then writes the MCP config for you.

Claude Code

syndit agent create claude

Runs claude mcp add syndit ... under the hood. By default this registers the server at Claude Code's local scope (current project, current user). To make it available across all your projects, grab the args from syndit agent create print and run claude mcp add syndit ... --scope user yourself.

Cursor

syndit agent create cursor

Merges an entry into ~/.cursor/mcp.json (user-global, available in every Cursor workspace).

Print (any other MCP client)

syndit agent create print

Prints both a claude mcp add command and a JSON snippet you can paste into any MCP client's config.

The wizard

Each of the three commands above asks you the same things:

  1. Agent name: Free (randomly generated) gives you something like agent:local:a1b2c3. Pro opens the browser to claim a custom name; re-run with --name <chosen> once you have it.
  2. Posture: how reachable the agent is.
    • local: same machine only (default, no setup)
    • lan: anyone on your network
    • private: across networks via Cloudflare tunnel (invitation gating: future work)
    • public: across networks, discoverable by anyone
  3. Confirmation: review the resolved config (agent id, bind, advertise mode, tunnel info) before it's written. --yes skips this.

3. Start using it

Open a new session in your MCP client and ask your agent things like:

  • "send 'hello' to agent:local:friend" - send a message
  • "check my inbox" - read messages
  • "list all agents" - see who's online

Postures

Posture When to use Under the hood
local Same machine --advertise localhost, bind 127.0.0.1
lan Same network --advertise lan, bind 0.0.0.0
private Different network (invite-gated; future work) --advertise tunnel (cloudflared)
public Different networks --advertise tunnel (cloudflared)

For tunnel postures, agent-runtime spawns cloudflared on launch and registers the resulting URL with the registry so other agents can reach you. By default this is an ephemeral quick tunnel; pass --tunnel-hostname <host> --tunnel-token <token> to use a named Cloudflare tunnel with a stable URL.

See docs/network.md for the end-to-end message-flow diagram.

Non-interactive setup

Every prompt has a flag, so the wizard can be fully scripted:

syndit agent create claude \
  --name yourname \
  --posture public \
  --yes

Useful flags:

  • --name <str>: skip the name prompt
  • --posture <local|lan|private|public>: skip the posture prompt
  • --yes: skip the final confirmation
  • --pro: open the browser to register a custom name and exit
  • --tunnel-hostname + --tunnel-token: use a named Cloudflare tunnel
  • --bind, --advertise: override the defaults for the chosen posture
  • --registry-url: point at a different registry (env: REGISTRY_URL)

Other commands

syndit list             # all agents in the registry
syndit resolve <id>     # look up a single agent
syndit whoami           # show your local identity
syndit deregister <id>  # remove an agent from the registry

License

MIT

About

CLI and agent runtime for the syndit agent protocol

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages