{"_id":"@codebolt/agent-message","_rev":"3-a1873494d444a0830cc1838586bd485e","name":"@codebolt/agent-message","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@codebolt/agent-message","version":"0.1.0","license":"MIT","_id":"@codebolt/agent-message@0.1.0","maintainers":[{"name":"ravirawatsingh","email":"ravi@arrowai.com"},{"name":"utkarshx","email":"utk.shukla@gmail.com"}],"bin":{"agent-message":"dist/cli.cjs"},"dist":{"shasum":"570742e46c84ed754aa7e407647c9b8f732e89e3","tarball":"https://registry.npmjs.org/@codebolt/agent-message/-/agent-message-0.1.0.tgz","fileCount":6,"integrity":"sha512-wk1vy8PDvf9OxTOaq5q0Ivl6dsw533T4tX8Yz6DFL6FJPOzQ2pFVoZ2XO+ngfjDX9Mc2XVmaZgO7cybynX8Oyw==","signatures":[{"sig":"MEUCIQDFmb7uDiwD/WAePHdNS53HrSqMpkJaF3KBrcZVrqZjGQIgRMXvNlD2FMwlFacj9kYupsLj3UEJtXVbPhJJvV5jd18=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1312211},"main":"dist/index.cjs","type":"module","types":"dist/index.d.cts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.cts","import":"./dist/index.cjs","require":"./dist/index.cjs"},"./package.json":"./package.json"},"gitHead":"a6f347a81947010fc9fff87c4269dd19bd31b608","scripts":{"build":"tsup --config tsup.config.ts","prepack":"npm run build","postbuild":"node scripts/write-public-types.mjs","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"utkarshx","email":"utk.shukla@gmail.com"},"_npmVersion":"11.11.0","description":"Central communication CLI and provider runtime for agents.","directories":{},"_nodeVersion":"20.18.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/agent-message_0.1.0_1780483669956_0.9374084937035772","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@codebolt/agent-message","version":"0.1.1","license":"MIT","_id":"@codebolt/agent-message@0.1.1","maintainers":[{"name":"ravirawatsingh","email":"ravi@arrowai.com"},{"name":"utkarshx","email":"utk.shukla@gmail.com"}],"bin":{"agent-message":"dist/cli.cjs"},"dist":{"shasum":"84b59bb9cd297a9b031cf259ea32183100b0a052","tarball":"https://registry.npmjs.org/@codebolt/agent-message/-/agent-message-0.1.1.tgz","fileCount":6,"integrity":"sha512-R7NVsObjWfBV5369jZwsnch2ZKWRuqLS5+HCtumMfNiUwLipkqCAiPPyru1ZbWJnGq0jBuur3pIEpDq9nXnSfg==","signatures":[{"sig":"MEQCIHrR7ytLRoTTS+y5wF15jAMn2p70l13yDnN+YuXdlZYoAiByschW+V00Hseni3hTAnNDLCNN2yiZUsLWoQGCLCSscg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1317678},"main":"dist/index.cjs","type":"module","types":"dist/index.d.cts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.cts","import":"./dist/index.cjs","require":"./dist/index.cjs"},"./package.json":"./package.json"},"gitHead":"a6f347a81947010fc9fff87c4269dd19bd31b608","scripts":{"build":"tsup --config tsup.config.ts","prepack":"npm run build","postbuild":"node scripts/write-public-types.mjs","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"utkarshx","email":"utk.shukla@gmail.com"},"_npmVersion":"11.11.0","description":"Central communication CLI and provider runtime for agents.","directories":{},"_nodeVersion":"20.18.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/agent-message_0.1.1_1780484075023_0.5344258685094039","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@codebolt/agent-message","version":"0.1.2","description":"Central communication CLI and provider runtime for agents.","license":"MIT","type":"module","bin":{"agent-message":"dist/cli.cjs"},"main":"dist/index.cjs","types":"dist/index.d.cts","exports":{".":{"types":"./dist/index.d.cts","import":"./dist/index.cjs","require":"./dist/index.cjs"},"./package.json":"./package.json"},"scripts":{"build":"tsup --config tsup.config.ts","postbuild":"node scripts/write-public-types.mjs","typecheck":"tsc -p tsconfig.json --noEmit","prepack":"npm run build"},"engines":{"node":">=20.0.0"},"publishConfig":{"access":"public"},"gitHead":"a6f347a81947010fc9fff87c4269dd19bd31b608","_id":"@codebolt/agent-message@0.1.2","_nodeVersion":"20.18.3","_npmVersion":"11.11.0","dist":{"integrity":"sha512-7g8mVELjCOJaW7SCRdaZ3CBqo0IC6dXaraWjTgSzhMA76HWsb+xYFE9HnEXjZpO8J42AtPS+LxbapaJSmPd33A==","shasum":"3e33b46934e3667349899fd74d33ef555e54f800","tarball":"https://registry.npmjs.org/@codebolt/agent-message/-/agent-message-0.1.2.tgz","fileCount":7,"unpackedSize":1325479,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDH3YNfWIbAGEZ/2ws0CNMBMLdrZzKwJbitt0NzLAhv2AiEA6aFHGNEZ0PXpvPNEes6tvKVONSWZINP7DjIs7X+5fqE="}]},"_npmUser":{"name":"utkarshx","email":"utk.shukla@gmail.com"},"directories":{},"maintainers":[{"name":"ravirawatsingh","email":"ravi@arrowai.com"},{"name":"utkarshx","email":"utk.shukla@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/agent-message_0.1.2_1780484452154_0.7142631283786847"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-03T10:47:49.831Z","modified":"2026-06-03T11:00:52.464Z","0.1.0":"2026-06-03T10:47:50.140Z","0.1.1":"2026-06-03T10:54:35.218Z","0.1.2":"2026-06-03T11:00:52.324Z"},"license":"MIT","description":"Central communication CLI and provider runtime for agents.","maintainers":[{"name":"ravirawatsingh","email":"ravi@arrowai.com"},{"name":"utkarshx","email":"utk.shukla@gmail.com"}],"readme":"# @codebolt/agent-message\n\nProvider-neutral messaging for AI agents.\n\n<p align=\"center\">\n  <img src=\"assets/agent-message-overview.svg\" alt=\"Agent Message connects AI agents and agent apps to local, federated, and email providers through one messaging layer.\" />\n</p>\n\n`@codebolt/agent-message` gives agents one CLI and TypeScript runtime for sending messages, reading mailboxes, listing threads, and replying across local, federated, and email-backed providers. It is published as a self-contained package: the CLI, core runtime, federation server, and built-in providers are bundled into this one install.\n\n## Install\n\n```bash\nnpm install -g @codebolt/agent-message\n```\n\nThen initialize config:\n\n```bash\nagent-message config init\nagent-message config validate\nagent-message providers list\n```\n\nRequires Node.js 20 or newer.\n\n## Why Use It\n\nAgents should not need a different integration path for every inbox or message provider. Agent Message normalizes the common operations:\n\n- send a direct message\n- read mailbox messages\n- read and reply to threads\n- route by agent, account, contact, provider, and handle\n- store local development messages in append-only JSONL\n- bridge to remote agents through federation\n\n## Quickstart\n\nCreate two local agents and send a message between them:\n\n```bash\nagent-message config init\nagent-message agents create alice --name \"Alice Agent\"\nagent-message agents create bob --name \"Bob Agent\"\nagent-message --agent alice accounts create local --id alice-local --name \"Alice Local\" --address local:alice\nagent-message --agent bob accounts create local --id bob-local --name \"Bob Local\" --address local:bob\nagent-message contacts create bob --name \"Bob Agent\"\nagent-message contacts add-handle bob --provider local --address local:bob --account bob-local --primary\nagent-message --agent alice --account alice-local send --to bob --text \"hello from alice\"\nagent-message --agent bob --account bob-local mailbox list\n```\n\nMost commands support `--format json` for agent-readable output:\n\n```bash\nagent-message --agent bob --account bob-local --format json mailbox list\n```\n\n## Configuration\n\nConfig is loaded from:\n\n1. `--config <path>`\n2. `AGENT_MESSAGE_CONFIG`\n3. `./agent-message.yaml`\n4. `~/.config/agent-message/config.yaml`\n\nMessage state is stored separately as JSONL under `~/.local/share/agent-message` by default. Override it with `AGENT_MESSAGE_STATE_DIR` or `state.dir` in config.\n\nMinimal config:\n\n```yaml\ndefaultAgent: default\nagents:\n  default:\n    id: default\n    name: Default Agent\nproviders:\n  local:\n    id: local\n    type: local\n    kind: local\naccounts:\n  default-local:\n    id: default-local\n    provider: local\n    address: local:default\n    displayName: Default Agent\n    agents:\n      - default\ncontacts: {}\n```\n\n## CLI Commands\n\nConfiguration:\n\n```bash\nagent-message config init\nagent-message config path\nagent-message config validate\nagent-message config doctor\n```\n\nAgents, accounts, contacts, and providers:\n\n```bash\nagent-message agents list\nagent-message agents show <agentId>\nagent-message agents create <agentId> --name <name>\nagent-message agents current\nagent-message accounts list\nagent-message accounts show <accountId>\nagent-message accounts setup <provider>\nagent-message accounts create <provider> --id <accountId> --name <name> --address <address>\nagent-message contacts list\nagent-message contacts show <contactId>\nagent-message contacts search <query>\nagent-message contacts create <contactId> --name <name>\nagent-message contacts add-handle <contactId> --provider <provider> --address <address>\nagent-message providers list\nagent-message providers capabilities <provider>\n```\n\nMessaging:\n\n```bash\nagent-message --agent <agentId> --account <accountId> send --to <contact-or-address> --text <message>\nagent-message --agent <agentId> --account <accountId> mailbox list\nagent-message --agent <agentId> --account <accountId> messages read <messageId>\nagent-message --agent <agentId> --account <accountId> threads list\nagent-message --agent <agentId> --account <accountId> threads read <threadId>\nagent-message --agent <agentId> --account <accountId> threads reply <threadId> --text <message>\n```\n\nFederation server:\n\n```bash\nagent-message server init\nagent-message server start --host 127.0.0.1 --port 8787\n```\n\n## Built-In Providers\n\n| Provider | Type | Notes |\n| --- | --- | --- |\n| Local | `local` | JSONL-backed local development provider |\n| Federation | `federation` | HTTP provider for remote agent-message servers |\n| AgentMail | `agentmail` | Uses `AGENTMAIL_API_KEY` by default |\n| OpenMail | `openmail` | Uses `OPENMAIL_API_KEY` by default |\n| Robotomail | `robotomail` | Uses `ROBOTOMAIL_API_KEY`; supports `settings.domainId` |\n| Nuntly | `nuntly` | Uses `NUNTLY_API_KEY`; supports `settings.domainId` or `settings.namespaceId` |\n| Lumbox | `lumbox` | Uses `LUMBOX_API_KEY` by default |\n| AGMail | `agmail` | Uses `AGMAIL_API_KEY`; supports `settings.domain` |\n\nProvider auth can be customized in config:\n\n```yaml\nproviders:\n  agentmail:\n    id: agentmail\n    type: agentmail\n    kind: email\n    auth:\n      apiKeyEnv: AGENTMAIL_API_KEY\n```\n\n## TypeScript API\n\n```ts\nimport {\n  ProviderRegistry,\n  JsonlEventStore,\n  localProvider,\n  agentMailProvider,\n  loadConfig,\n  type ProviderAdapter,\n} from \"@codebolt/agent-message\";\n\nconst loadedConfig = await loadConfig();\nconst registry = new ProviderRegistry();\nregistry.register(localProvider);\nregistry.register(agentMailProvider);\n\nconst store = new JsonlEventStore(loadedConfig.stateDir);\nconst provider: ProviderAdapter = registry.get(\"local\");\n```\n\nThe package exports the provider contract, config helpers, routing helpers, JSONL event store, built-in providers, CLI helpers, and federation server helpers.\n\n## Publishing Shape\n\nThis package is intentionally self-contained. The internal workspace packages are private build units and are bundled into `@codebolt/agent-message`; consumers only need to install this package.\n","readmeFilename":"README.md"}