Integrations and atom catalog
JarvisCore integrations are small, typed Python functions called atoms. The
runtime seeds shipped atoms into FunctionRegistry, searches the registry before
generating code, and offers qualifying atoms to AutoAgent as native tools.
Applications do not need to enumerate atom names in prompts.
For the architecture behind policies, stages, versions, and repair, read
System Bundles and Atoms. This guide owns the
provider catalog and the practical setup path.
Use an integration from an agent
Declare what the agent is authorized to do. The Kernel selects a matching atom
from the registry when one exists.
from jarviscore import AutoAgent
class OperationsAgent(AutoAgent):
role = "operations"
capabilities = ["team_messaging", "issue_management", "documentation"]
system_prompt = """
You coordinate operational work across connected systems. Verify provider
state before mutating it and return the resulting record identifiers.
"""
capabilities controls peer discovery and distributed work authority. It does
not load a private subset of the atom catalog; registry search still decides
which qualifying tool matches the current task.
How selection works
flowchart LR
Task["Agent task"] --> Intent["Normalize intent"]
Intent --> Search["Search FunctionRegistry"]
Search -->|"verified or golden match"| Tool["Offer typed atom tool"]
Search -->|"no suitable match"| Generate["Generate candidate code"]
Tool --> Execute["Execute through sandbox and Nexus"]
Generate --> Validate["Validate and execute candidate"]
Validate -->|"successful evidence"| Register["Register immutable version"]
Register --> Execute
Execute --> Result["Structured provider result"]
The registry ranks metadata and execution evidence. A matched function is not a
business decision: the agent still reasons from the task, provider evidence, and
its capability contract.
Provider atoms call nexus_call(). They do not accept tokens, read provider
secrets from environment variables, or expose credentials to model context.
Register the connection required by your deployment:
jarviscore nexus init
jarviscore nexus register github \
--client-id=YOUR_ID \
--client-secret=YOUR_SECRET
jarviscore nexus test github
API-key and basic-auth providers use the same registration command with their
provider-specific flags. Run jarviscore nexus register --help and
jarviscore nexus register <provider> --help for the installed CLI contract.
See Nexus Credentials for local and gateway deployment.
Installed catalog
150 bundles ยท 1228 atoms in this source tree
This directory is generated at build time from PROVIDER_META and the
atom files on disk. Use jarviscore atom list --bundle <name> for the
exact atom names shipped in your installed version.
Advertising
| Bundle |
Auth |
Seed stage |
Atoms |
Capabilities |
google_ads |
oauth2 |
verified |
26 |
ad_groups, ads, campaign_budgets, campaigns, keywords, records |
linkedin_ads |
oauth2 |
verified |
6 |
campaigns, creatives, analytics |
reddit_ads |
oauth2 |
verified |
9 |
ads, campaigns, records |
snapchat_ads |
oauth2 |
verified |
9 |
ads, campaigns, records |
tiktok_ads |
oauth2 |
verified |
9 |
ads, campaigns, records |
twitter_ads |
oauth2 |
verified |
9 |
ads, campaigns, records |
Analytics
| Bundle |
Auth |
Seed stage |
Atoms |
Capabilities |
amplitude |
api_key |
verified |
6 |
events, users |
fullstory |
oauth2 |
verified |
5 |
events, records, reports |
google_analytics |
oauth2 |
verified |
1 |
reports |
kissmetrics |
api_key |
verified |
5 |
events, products, records, reports |
logrocket |
api_key |
verified |
5 |
events, records, reports |
matomo |
api_key |
verified |
8 |
events, records, reports |
mixpanel |
api_key |
verified |
8 |
events, profiles, records |
pendo |
api_key |
verified |
6 |
events, records, reports |
plausible |
oauth2 |
verified |
6 |
events, records, reports |
posthog |
oauth2 |
verified |
8 |
events, records, reports |
segment |
oauth2 |
verified |
9 |
destinations, records, sources |
Cms
| Bundle |
Auth |
Seed stage |
Atoms |
Capabilities |
wordpress |
api_key |
verified |
13 |
pages, posts, records, users |
Communication
| Bundle |
Auth |
Seed stage |
Atoms |
Capabilities |
africas_talking |
api_key |
verified |
2 |
messages |
brevo |
api_key |
candidate |
3 |
email_send, contacts |
discord |
oauth2 |
verified |
3 |
messages, channels, users |
gmail |
oauth2 |
candidate |
5 |
email_send, email_read, drafts |
google_chat |
oauth2 |
verified |
4 |
conversations, messages |
mailchimp |
api_key |
candidate |
3 |
subscribers, campaigns, lists |
mattermost |
oauth2 |
verified |
9 |
conversations, messages, records |
msgraph |
oauth2 |
verified |
14 |
email, calendar, teams_chat, files |
rocket_chat |
api_key |
verified |
9 |
conversations, messages, records |
sendgrid |
api_key |
candidate |
2 |
email_send, stats |
slack |
oauth2 |
verified |
6 |
messaging, channels, users, reactions |
telegram |
api_key |
verified |
5 |
messages, records, updates |
twilio |
basic_auth |
verified |
9 |
calls, messages, records |
webex |
oauth2 |
verified |
6 |
messages, rooms, users |
whatsapp_business |
oauth2 |
verified |
4 |
messages, records |
zoom |
oauth2 |
verified |
6 |
meetings, users, recordings |
Content
| Bundle |
Auth |
Seed stage |
Atoms |
Capabilities |
linkedin |
oauth2 |
verified |
6 |
posts, profile, connections |
reddit |
oauth2 |
verified |
6 |
posts, subreddits, comments |
twitter |
oauth2 |
verified |
3 |
tweets, likes, replies |
youtube |
oauth2 |
verified |
6 |
videos, playlists, channels |
Crm
| Bundle |
Auth |
Seed stage |
Atoms |
Capabilities |
activecampaign |
api_key |
verified |
12 |
contacts, deals, lists, records |
agilecrm |
api_key |
verified |
13 |
accounts, contacts, deals, records |
apollo |
api_key |
candidate |
3 |
people_search, companies, leads, prospecting |
attio |
oauth2 |
verified |
13 |
accounts, contacts, deals, records |
capsulecrm |
oauth2 |
verified |
13 |
accounts, contacts, deals, records |
close |
api_key |
verified |
13 |
accounts, contacts, deals, records |
dynamics |
oauth2 |
verified |
3 |
accounts, contacts, opportunities |
folk |
oauth2 |
verified |
13 |
accounts, contacts, deals, records |
freshsales |
oauth2 |
verified |
13 |
accounts, contacts, deals, records |
hubspot |
oauth2 |
candidate |
9 |
contacts, deals, companies, crm |
insightly |
api_key |
verified |
16 |
accounts, contacts, deals, records |
keap |
oauth2 |
verified |
16 |
accounts, contacts, deals, records |
less_annoying_crm |
api_key |
verified |
16 |
accounts, contacts, deals, records |
nimble |
oauth2 |
verified |
13 |
accounts, contacts, deals, records |
nutshell |
api_key |
verified |
13 |
accounts, contacts, deals, records |
oracle_cx |
oauth2 |
verified |
6 |
accounts, contacts, leads |
pipedrive |
oauth2 |
verified |
13 |
deals, organizations, persons, records |
salesflare |
oauth2 |
verified |
13 |
accounts, contacts, deals, records |
salesforce |
oauth2 |
candidate |
4 |
contacts, leads, opportunities, soql |
streak |
api_key |
verified |
13 |
accounts, contacts, deals, records |
zoho_crm |
oauth2 |
verified |
13 |
contacts, deals, leads, records |
Development
| Bundle |
Auth |
Seed stage |
Atoms |
Capabilities |
assembla |
api_key |
verified |
9 |
pipelines, projects, records |
beanstalk |
api_key |
verified |
13 |
builds, pipelines, projects, records |
github |
oauth2 |
verified |
8 |
issues, pull_requests, repositories, files, comments |
gitlab |
oauth2 |
verified |
13 |
issues, merge_requests, projects, records |
jira |
basic_auth |
verified |
3 |
issues, projects, tickets |
linear |
oauth2 |
verified |
5 |
issues, teams, projects, search |
perforce |
basic_auth |
verified |
5 |
projects, records |
phabricator |
api_key |
verified |
11 |
builds, pipelines, projects, records |
sourceforge |
oauth2 |
verified |
3 |
projects, records |
sourcegraph |
oauth2 |
verified |
1 |
records |
Devops
| Bundle |
Auth |
Seed stage |
Atoms |
Capabilities |
bamboo |
api_key |
verified |
6 |
builds, plans, deployments |
circleci |
api_key |
verified |
6 |
builds, pipelines, projects |
jenkins |
api_key |
verified |
15 |
builds, pipelines, projects, records |
teamcity |
oauth2 |
verified |
9 |
builds, projects, records |
travis_ci |
oauth2 |
verified |
9 |
builds, projects, records |
Ecommerce
| Bundle |
Auth |
Seed stage |
Atoms |
Capabilities |
etsy |
oauth2 |
verified |
9 |
customers, orders, products, records |
jumia_seller_center |
api_key |
verified |
9 |
orders, products, records |
prestashop |
api_key |
verified |
13 |
customers, orders, products, records |
shift4shop |
oauth2 |
verified |
13 |
customers, orders, products, records |
shopify |
oauth2 |
verified |
13 |
customers, orders, products, records |
wix_stores |
oauth2 |
verified |
13 |
customers, orders, products, records |
woocommerce |
api_key |
verified |
13 |
customers, orders, products, records |
Erp
| Bundle |
Auth |
Seed stage |
Atoms |
Capabilities |
netsuite |
oauth2 |
verified |
6 |
invoices, vendors, customers, items |
odoo |
api_key |
verified |
6 |
leads, employees, invoices |
oracle_erp |
basic_auth |
verified |
6 |
invoices, journals, purchase_orders |
sap |
basic_auth |
verified |
6 |
purchase_orders, sales_orders, vendors |
Finance
| Bundle |
Auth |
Seed stage |
Atoms |
Capabilities |
freshbooks |
oauth2 |
verified |
8 |
invoices, clients, expenses |
quickbooks |
oauth2 |
candidate |
4 |
profit_and_loss, invoices, expenses, balance_sheet |
sage_business_cloud_accounting |
oauth2 |
verified |
13 |
contacts, invoices, payments, records |
sage_pastel |
api_key |
verified |
13 |
contacts, invoices, payments, records |
stripe |
api_key |
candidate |
4 |
invoices, charges, customers, balance |
wave_accounting |
oauth2 |
verified |
13 |
contacts, invoices, payments, records |
xero |
oauth2 |
verified |
13 |
contacts, invoices, payments, records |
zoho_books |
oauth2 |
verified |
8 |
invoices, customers, bills |
Geo
| Bundle |
Auth |
Seed stage |
Atoms |
Capabilities |
google_maps |
api_key |
verified |
2 |
records |
what3words |
api_key |
verified |
5 |
items, records |
Government
| Bundle |
Auth |
Seed stage |
Atoms |
Capabilities |
kra |
api_key |
verified |
2 |
pin_check, tax_obligations, compliance |
Healthcare
| Bundle |
Auth |
Seed stage |
Atoms |
Capabilities |
openmrs |
basic_auth |
verified |
6 |
patients, encounters, observations |
Hr
| Bundle |
Auth |
Seed stage |
Atoms |
Capabilities |
simplepay |
oauth2 |
verified |
9 |
customers, orders, records |
zoho_people |
oauth2 |
verified |
4 |
employees, forms, attendance |
zoho_shifts |
oauth2 |
verified |
4 |
shifts, schedules |
Identity
| Bundle |
Auth |
Seed stage |
Atoms |
Capabilities |
okta |
api_key |
verified |
13 |
apps, groups, records, users |
prembly |
api_key |
verified |
7 |
items, records |
Marketing
| Bundle |
Auth |
Seed stage |
Atoms |
Capabilities |
klaviyo |
api_key |
verified |
11 |
events, profiles, records, reports |
Payments
| Bundle |
Auth |
Seed stage |
Atoms |
Capabilities |
paystack |
oauth2 |
verified |
12 |
customers, plans, records, transactions |
safaricom_mpesa |
oauth2 |
verified |
3 |
orders, records |
square |
oauth2 |
verified |
13 |
customers, orders, payments, records |
Productivity
| Bundle |
Auth |
Seed stage |
Atoms |
Capabilities |
airtable |
api_key |
verified |
8 |
records, tables, bases, search |
clickup |
api_key |
verified |
6 |
tasks, lists, spaces |
coda |
oauth2 |
verified |
9 |
projects, records, tasks |
confluence |
basic_auth |
verified |
3 |
pages, spaces, search |
dropbox |
oauth2 |
verified |
5 |
files, folders, sharing |
dropbox_sign |
oauth2 |
verified |
9 |
files, folders, records |
google_calendar |
oauth2 |
candidate |
3 |
events, create_event, delete_event |
google_drive |
oauth2 |
verified |
9 |
files, folders, upload, download, sharing |
google_people |
oauth2 |
verified |
3 |
contacts, directory_peoples, user_profiles |
google_sheets |
oauth2 |
candidate |
4 |
read, write, append |
infobip |
api_key |
verified |
8 |
conversations, messages, records |
notion |
oauth2 |
verified |
6 |
pages, blocks, databases, search |
pagerduty |
api_key |
verified |
13 |
incidents, records, services, users |
todoist |
oauth2 |
verified |
6 |
tasks, projects, sections |
zoho_desk |
oauth2 |
verified |
13 |
contacts, departments, records, tickets |
Project Management
| Bundle |
Auth |
Seed stage |
Atoms |
Capabilities |
asana |
oauth2 |
verified |
12 |
projects, records, tasks, users |
freedcamp |
api_key |
verified |
8 |
projects, tasks |
height |
api_key |
verified |
9 |
projects, records, tasks |
liquidplanner |
oauth2 |
verified |
9 |
projects, records, tasks |
monday |
api_key |
verified |
9 |
boards, items, records |
nifty |
oauth2 |
verified |
8 |
projects, tasks |
pivotal_tracker |
api_key |
verified |
9 |
projects, records, tasks |
podio |
oauth2 |
verified |
9 |
projects, records, tasks |
proofhub |
api_key |
verified |
9 |
projects, records, tasks |
shortcut |
api_key |
verified |
9 |
projects, records, tasks |
targetprocess |
oauth2 |
verified |
9 |
projects, records, tasks |
trello |
api_key |
verified |
13 |
boards, cards, lists, records |
workfront |
api_key |
verified |
9 |
projects, records, tasks |
wrike |
oauth2 |
verified |
9 |
projects, records, tasks |
Search
| Bundle |
Auth |
Seed stage |
Atoms |
Capabilities |
serper |
api_key |
candidate |
2 |
web_search, news_search |
Storage
| Bundle |
Auth |
Seed stage |
Atoms |
Capabilities |
amazon_s3 |
api_key |
verified |
4 |
objects |
azure_storage |
api_key |
verified |
3 |
blobs, containers, files |
backblaze_b2 |
basic_auth |
verified |
5 |
files, folders |
box |
oauth2 |
verified |
9 |
files, folders, records |
egnyte |
oauth2 |
verified |
9 |
files, folders, records |
gcs |
oauth2 |
verified |
7 |
files, folders, records |
Support
| Bundle |
Auth |
Seed stage |
Atoms |
Capabilities |
crisp |
api_key |
verified |
9 |
conversations, messages, records |
drift |
oauth2 |
verified |
4 |
conversations, messages |
freshchat |
oauth2 |
verified |
6 |
conversations, messages |
gorgias |
api_key |
verified |
8 |
conversations, messages |
intercom |
oauth2 |
verified |
15 |
companies, companys, contacts, conversations, records |
livechat |
api_key |
verified |
9 |
conversations, messages, records |
tawkto |
basic_auth |
verified |
3 |
conversations, records |
zendesk_chat |
oauth2 |
verified |
9 |
agents, chats, records |
Inspect exact atom names
The generated directory above deliberately summarizes bundles. The installed
package is authoritative for individual atom names. See the
jarviscore atom list command reference for
options and output:
# Every installed bundle and atom
jarviscore atom list
# One bundle
jarviscore atom list --bundle google_chat
This matters when applications pin different JarvisCore versions: the docs show
the source tree used to build them, while the CLI shows the package actually
running in that environment.
Build a custom atom
A custom atom follows the same contract as a shipped atom:
jarviscore/integrations/atoms/linear/linear_close_issue.pyATOM_POLICY = {
"effect": "write",
"approval": "never",
"idempotency_fields": ["issue_id"],
"consequence": "Moves one Linear issue to a closed state.",
}
async def linear_close_issue(issue_id: str, state_id: str) -> dict:
"""Close a Linear issue. https://developers.linear.app/docs/graphql/working-with-the-graphql-api"""
response = await nexus_call(
"POST",
"https://api.linear.app/graphql",
json={
"query": "mutation Close($id: String!, $state: String!) { issueUpdate(id: $id, input: {stateId: $state}) { success } }",
"variables": {"id": issue_id, "state": state_id},
},
)
if not response["ok"]:
return {"success": False, "error": response["body"]}
return {"success": True, "issue_id": issue_id, "data": response["json"]}
The required contract is:
- Filename and top-level function name match.
- The function name starts with the provider and follows
{system}_{verb}_{object}.
- The entry point is
async def, has typed parameters, and returns a dict.
- The docstring describes the action and links to provider documentation.
- Provider access goes through
nexus_call() with no token parameter.
ATOM_POLICY declares effect, approval, consequence, and mutation identity.
- Provider failures are returned as structured results rather than hidden.
Validate the source before any live call:
jarviscore atom test \
--bundle linear \
--atom linear_close_issue \
--mode dry-run
Then verify credential resolution through Nexus:
jarviscore atom test \
--bundle linear \
--atom linear_close_issue \
--connection-id CONNECTION_ID \
--mode integration
The integration command validates that the connection resolves; application
integration tests should still exercise the provider behavior you depend on.
See Testing Custom Atoms for the complete workflow.
Add a provider to the shipped catalog
A framework contribution requires three source changes:
- Add atom modules under
jarviscore/integrations/atoms/<provider>/.
- Add provider metadata to
PROVIDER_META in
jarviscore/integrations/seed_registry.py.
- Add contract and provider-response tests.
Do not edit a catalog table. This page regenerates from those authoritative
sources during the documentation build.