Skip to content

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.

Configure credentials with Nexus

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
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.py
ATOM_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:

  1. Filename and top-level function name match.
  2. The function name starts with the provider and follows {system}_{verb}_{object}.
  3. The entry point is async def, has typed parameters, and returns a dict.
  4. The docstring describes the action and links to provider documentation.
  5. Provider access goes through nexus_call() with no token parameter.
  6. ATOM_POLICY declares effect, approval, consequence, and mutation identity.
  7. 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:

  1. Add atom modules under jarviscore/integrations/atoms/<provider>/.
  2. Add provider metadata to PROVIDER_META in jarviscore/integrations/seed_registry.py.
  3. Add contract and provider-response tests.

Do not edit a catalog table. This page regenerates from those authoritative sources during the documentation build.