Profile
Back to NewsBack
GitHub Trending 10 min
Reader Mode
Michaelliv/runline: ⚡ Code mode for agents

Michaelliv/runline: ⚡ Code mode for agents

12 hours ago

runline ⚡

Code mode for agents.

Turn any API or host capability into a callable action. Install a plugin, write JavaScript, call actions. Code runs in a QuickJS WASM runtime with plugin globals; enable the built-in node plugin when you want filesystem, path, OS, process, crypto, shell, and fetch actions.

npm install -g runline

Quick Start

npm install -g runline
runline init
runline connection add bf --plugin brandfetch --set apiKey=xxx

runline exec 'return await brandfetch.brand.getColors({ domain: "nike.com" })'

=> [{ hex: "#E5E5E5", type: "accent" }, { hex: "#111111", type: "dark" }, ...]

All 204 built-in plugins ship bundled inside runline — no per-plugin install step. Just add a connection for the one you want to use. Agent code runs in a QuickJS runtime: each configured plugin is a top-level global, dot-chain into resource and action. Configure the built-in node plugin for host work like node.fs.readFile, node.process.execFile, node.path.join, node.crypto.hash, and node.fetch.

// agent writes this
const company = await brandfetch.brand.getCompany({ domain: "stripe.com" });
const deals = await pipedrive.deal.list({ limit: 10 });
const issue = await github.issue.create({
  owner: "acme", repo: "api",
  title: New lead: ${company.name},
  body: ${deals.length} open deals
});
return { company: company.name, issue: issue.number };

Plugins

204 built-in plugins covering popular SaaS, DevOps, productivity, image-generation APIs, and host Node capabilities. All ship with the package — no separate install needed.

Set the env var shown in the Auth column, add a connection, and go:

export GITHUB_TOKEN=ghp_xxx
runline connection add gh --plugin github --set token=$GITHUB_TOKEN
runline exec 'return await github.user.listRepos({ username: "torvalds" })'

| Plugin | Actions | Resources | Auth | |--------|--------:|-----------|------| | actionNetwork | 23 | attendance, event, person, petition, signature, tag, personTag | ACTION_NETWORK_API_KEY | | activeCampaign | 48 | contact, account, accountContact, contactTag, contactList, list, tag, deal, connection, ecomCustomer, ecomOrder, ecomOrderProduct | ACTIVE_CAMPAIGN_API_URL, ACTIVE_CAMPAIGN_API_KEY | | adalo | 5 | collection | ADALO_APP_ID, ADALO_API_KEY | | affinity | 16 | list, listEntry, person, organization | AFFINITY_API_KEY | | agentMail | 32 | whoami, inbox, message, thread, draft | AGENTMAIL_API_KEY | | agileCrm | 15 | contact, company, deal | AGILE_CRM_SUBDOMAIN, AGILE_CRM_EMAIL, AGILE_CRM_API_KEY | | airtable | 10 | base, record | AIRTABLE_TOKEN | | airtop | 24 | session, window, extraction, interaction, agent, file | AIRTOP_API_KEY | | apiTemplateIo | 4 | account, template, image, pdf | API_TEMPLATE_IO_API_KEY | | asana | 22 | task, subtask, taskComment, taskTag, taskProject, user, project | ASANA_TOKEN | | autopilot | 11 | contact, contactJourney, contactList, list | AUTOPILOT_API_KEY | | bambooHr | 11 | employee, employeeDocument, file, companyReport | BAMBOO_HR_SUBDOMAIN, BAMBOO_HR_API_KEY | | bannerbear | 4 | image, template | BANNERBEAR_API_KEY | | baserow | 8 | row | BASEROW_HOST, BASEROW_TOKEN | | beeminder | 18 | datapoint, charge, goal, user | BEEMINDER_API_TOKEN | | bitly | 3 | link | BITLY_ACCESS_TOKEN | | bitwarden | 19 | collection, event, group, member | BITWARDEN_CLIENT_ID, BITWARDEN_CLIENT_SECRET | | box | 11 | file, folder | BOX_ACCESS_TOKEN | | brandfetch | 5 | brand | BRANDFETCH_API_KEY | | brevo | 15 | contact, attribute, email, sender | BREVO_API_KEY | | bubble | 5 | object | BUBBLE_API_TOKEN, BUBBLE_APP_NAME | | chargebee | 5 | customer, invoice, subscription | CHARGEBEE_ACCOUNT_NAME, CHARGEBEE_API_KEY | | circleci | 3 | pipeline | CIRCLECI_API_KEY | | ciscoWebex | 10 | message, meeting | WEBEX_ACCESS_TOKEN | | clearbit | 3 | person, company | CLEARBIT_API_KEY | | clickup | 61 | checklist, checklistItem, comment, folder, goal, goalKeyResult, guest, task, taskTag, taskList, taskDependency, spaceTag, list, timeEntry, timeEntryTag | CLICKUP_ACCESS_TOKEN | | clockify | 25 | client, project, tag, task, timeEntry, user, workspace | CLOCKIFY_API_KEY | | cloudflare | 4 | zoneCertificate | CLOUDFLARE_API_TOKEN | | cockpit | 5 | collection, form, singleton | COCKPIT_URL, COCKPIT_ACCESS_TOKEN | | coda | 18 | table, formula, control, view | CODA_ACCESS_TOKEN | | coingecko | 10 | coin, event | | | contentful | 7 | space, contentType, entry, asset, locale | CONTENTFUL_SPACE_ID, CONTENTFUL_DELIVERY_TOKEN | | convertkit | 16 | customField, form, sequence, tag, tagSubscriber | CONVERTKIT_API_SECRET | | copper | 32 | company, lead, opportunity, person, project, task, customerSource, user | COPPER_API_KEY, COPPER_EMAIL | | cortex | 4 | analyzer, job, responder | CORTEX_HOST, CORTEX_API_KEY | | currents | 22 | action, instance, project, run, signature, specFile, test, testResult | CURRENTS_API_KEY | | customerIo | 9 | campaign, customer, event, segment | CUSTOMERIO_SITE_ID, CUSTOMERIO_TRACKING_API_KEY, CUSTOMERIO_APP_API_KEY | | databricks | 34 | sql, files, genie, modelServing, catalog, table, volume, function, vectorSearch | DATABRICKS_HOST, DATABRICKS_TOKEN | | deepl | 2 | language | DEEPL_API_KEY | | demio | 4 | event, report | DEMIO_API_KEY, DEMIO_API_SECRET | | dhl | 1 | shipment | DHL_API_KEY | | discord | 13 | channel, member, message | DISCORD_BOT_TOKEN, DISCORD_GUILD_ID | | discourse | 16 | category, group, post, user, userGroup | DISCOURSE_HOST, DISCOURSE_API_KEY | | disqus | 4 | forum | DISQUS_API_KEY | | docker | 5 | containers, images | — | | drift | 5 | contact | DRIFT_ACCESS_TOKEN | | dropbox | 9 | file, folder, search | DROPBOX_ACCESS_TOKEN | | dropcontact | 2 | contact | DROPCONTACT_API_KEY | | egoi | 4 | contact | EGOI_API_KEY | | elasticsearch | 9 | document, index | ELASTICSEARCH_URL | | elevenlabs | 20 | dialogue, audio, history, voices, pronunciationDictionaries, models, speech, transcription, music, sound | ELEVENLABS_API_KEY | | emelia | 9 | campaign, contactList | EMELIA_API_KEY | | erpnext | 5 | document | ERPNEXT_HOST, ERPNEXT_API_KEY, ERPNEXT_API_SECRET | | facebookGraph | 1 | request | FACEBOOK_ACCESS_TOKEN | | fal | 8 | image, video, run, queue | FAL_KEY | | freshdesk | 10 | ticket, contact | FRESHDESK_DOMAIN, FRESHDESK_API_KEY | | freshservice | 77 | agent, agentGroup, announcement, asset, assetType, change, department, location, problem, product, release, requester, requesterGroup, software, ticket, agentRole | FRESHSERVICE_DOMAIN, FRESHSERVICE_API_KEY | | freshworksCrm | 35 | account, appointment, contact, deal, note, salesActivity, task, search | FRESHWORKS_CRM_DOMAIN, FRESHWORKS_CRM_API_KEY | | getresponse | 5 | contact | GETRESPONSE_API_KEY | | gett | 12 | account, place, driver, ride | | | ghost | 5 | post | GHOST_URL, GHOST_ADMIN_API_KEY | | github | 37 | file, issue, release, commit, branch, repository, review, user, organization, workflow | GITHUB_TOKEN | | gitlab | 17 | issue, release, repository, user, file | GITLAB_TOKEN | | gmail | 32 | message, thread, draft, label, profile, alias | | | gong | 4 | call, user | GONG_ACCESS_KEY, GONG_ACCESS_KEY_SECRET | | googleAppsScript | 10 | script, project, file, version, deployment, function, process | | | googleCalendar | 22 | calendar, event, freeBusy, calendarList, acl, settings | | | googleContacts | 10 | contact, group | | | googleDocs | 44 | document | | | googleDrive | 47 | file, folder, fileFolder, drive, comment, reply, revision, changes, permission, accessProposal, about | | | googleImage | 2 | image | GOOGLE_API_KEY | | googleSheets | 23 | spreadsheet, sheet, chart, namedRange, protectedRange, conditionalFormat, dataValidation | | | googleSlides | 7 | presentation, page | | | googleTasks | 12 | taskList, task | | | gotify | 3 | message | GOTIFY_URL, GOTIFY_APP_TOKEN, GOTIFY_CLIENT_TOKEN | | gotowebinar | 20 | webinar, registrant, session, attendee, coorganizer, panelist | GOTO_ACCESS_TOKEN, GOTO_ORGANIZER_KEY | | grafana | 17 | dashboard, team, teamMember, user | GRAFANA_URL, GRAFANA_API_KEY | | graphql | 2 | query, introspect | GRAPHQL_ENDPOINT | | grist | 4 | record | GRIST_API_KEY | | hackernews | 6 | article, user, all | — | | halopsa | 20 | client, site, ticket, user | HALOPSA_API_URL, HALOPSA_CLIENT_ID, HALOPSA_CLIENT_SECRET | | harvest | 49 | client, project, task, contact, invoice, expense, estimate, user, timeEntry, company | HARVEST_TOKEN, HARVEST_ACCOUNT_ID | | helpscout | 13 | conversation, customer, mailbox, thread | HELPSCOUT_ACCESS_TOKEN | | highlevel | 17 | contact, opportunity, task, calendar | HIGHLEVEL_ACCESS_TOKEN, HIGHLEVEL_LOCATION_ID | | homeAssistant | 13 | config, service, state, event, log, template, history | HASS_HOST, HASS_TOKEN | | hubspot | 32 | contact, company, deal, ticket, contactList, engagement, form | HUBSPOT_ACCESS_TOKEN | | humanticAi | 3 | profile | HUMANTIC_AI_API_KEY | | hunter | 3 | domainSearch, emailFinder, emailVerifier | HUNTER_API_KEY | | intercom | 10 | contact, company | INTERCOM_ACCESS_TOKEN | | iterable | 6 | event, user, userList | ITERABLE_API_KEY | | jenkins | 11 | job, build, instance | JENKINS_URL, JENKINS_USER, JENKINS_TOKEN | | jira | 16 | issue, issueComment, user | JIRA_DOMAIN, JIRA_EMAIL, JIRA_API_TOKEN | | keap | 28 | company, contact, contactNote, contactTag, order, product, email, file | KEAP_ACCESS_TOKEN | | kobotoolbox | 17 | form, submission, hook, file | KOBOTOOLBOX_URL, KOBOTOOLBOX_TOKEN | | lemlist | 15 | activity, campaign, lead, team, unsubscribe, enrich | LEMLIST_API_KEY | | linear | 89 | issue, comment, state, label, project, milestone, projectUpdate, view, cycle, team, initiative, user, attachment, org, webhook | LINEAR_API_KEY | | lingvanex | 1 | translate | LINGVANEX_API_KEY | | linkedin | 1 | post | LINKEDIN_ACCESS_TOKEN | | lonescale | 4 | list, item | LONESCALE_API_KEY | | magento | 15 | customer, invoice, order, product | MAGENTO_HOST, MAGENTO_ACCESS_TOKEN | | mailcheck | 1 | email | MAILCHECK_API_KEY | | mailchimp | 14 | member, memberTag, listGroup, campaign | MAILCHIMP_API_KEY | | mailerlite | 4 | subscriber | MAILERLITE_API_KEY | | mailgun | 1 | email | MAILGUN_API_KEY, MAILGUN_EMAIL_DOMAIN | | mailjet | 3 | email, sms | MAILJET_API_KEY, MAILJET_SECRET_KEY | | mandrill | 2 | message | MANDRILL_API_KEY | | marketstack | 3 | endOfDayData, exchange, ticker | MARKETSTACK_API_KEY | | matrix | 10 | account, room, message, event, roomMember | MATRIX_HOMESERVER_URL, MATRIX_ACCESS_TOKEN | | mattermost | 19 | channel, message, reaction, user | MATTERMOST_URL, MATTERMOST_TOKEN | | mautic | 20 | company, contact, contactSegment, campaignContact, companyContact, segmentEmail | MAUTIC_URL, MAUTIC_USERNAME, MAUTIC_PASSWORD | | medium | 3 | post, publication, me | MEDIUM_ACCESS_TOKEN | | messagebird | 2 | sms, balance | MESSAGEBIRD_ACCESS_KEY | | metabase | 10 | question, alert, database, metric | METABASE_URL, METABASE_SESSION_TOKEN | | microsoftCalendar | 2 | calendar, event | | | microsoftFiles | 5 | files, folder | | | microsoftMail | 4 | mail | | | misp | 44 | attribute, event, eventTag, feed, galaxy, noticelist, object, organisation, tag, user, warninglist | MISP_URL, MISP_API_KEY | | mocean | 2 | sms, voice | MOCEAN_API_KEY, MOCEAN_API_SECRET | | monday | 18 | board, boardColumn, boardGroup, boardItem | MONDAY_API_TOKEN | | monicaCrm | 45 | contact, activity, note, task, tag, journalEntry, reminder, call, conversation | MONICA_API_TOKEN | | msg91 | 1 | sms | MSG91_AUTHKEY | | nasa | 14 | apod, asteroidNeoFeed, asteroidNeoLookup, asteroidNeoBrowse, donki, earthAssets | NASA_API_KEY | | netlify | 7 | deploy, site | NETLIFY_ACCESS_TOKEN | | netscalerAdc | 3 | certificate, file | NETSCALER_URL, NETSCALER_USERNAME, NETSCALER_PASSWORD | | nextcloud | 13 | file, folder, user | NEXTCLOUD_WEBDAV_URL, NEXTCLOUD_USERNAME, NEXTCLOUD_PASSWORD | | nocodb | 5 | row | NOCODB_HOST, NOCODB_API_TOKEN | | node | 38 | fs, path, os, process, crypto, fetch | — | | notion | 14 | block, database, page, user | NOTION_API_KEY | | npm | 5 | package, distTag | | | odoo | 6 | record, model | ODOO_URL, ODOO_USERNAME, ODOO_PASSWORD | | okta | 5 | user | OKTA_URL, OKTA_API_TOKEN | | oneSimpleApi | 10 | website, socialProfile, information, utility | ONE_SIMPLE_API_TOKEN | | onfleet | 34 | organization, task, worker, admin, hub, team, recipient, container, destination | ONFLEET_API_KEY | | openai | 2 | image | OPENAI_API_KEY | | openThesaurus | 1 | synonyms | — | | openweathermap | 2 | weather | OPENWEATHERMAP_API_KEY | | oura | 4 | profile, summary | OURA_ACCESS_TOKEN | | paddle | 9 | coupon, payment, plan, product, user | PADDLE_VENDOR_ID, PADDLE_VENDOR_AUTH_CODE | | pagerduty | 9 | incident, incidentNote, logEntry, user | PAGERDUTY_API_TOKEN | | parallel | 1 | search | PARALLEL_API_KEY | | paypal | 4 | payout, payoutItem | PAYPAL_CLIENT_ID, PAYPAL_SECRET | | peekalink | 2 | link | PEEKALINK_API_KEY | | phantombuster | 5 | agent | PHANTOMBUSTER_API_KEY | | philipsHue | 4 | light | PHILIPS_HUE_ACCESS_TOKEN, PHILIPS_HUE_USERNAME | | pipedrive | 47 | activity, deal, dealProduct, file, lead, note, organization, person, product | PIPEDRIVE_API_TOKEN | | plaud | 9 | user, recording, transcript, summary, note | | | plivo | 3 | sms, mms, call | PLIVO_AUTH_ID, PLIVO_AUTH_TOKEN | | postbin | 6 | bin, request | — | | posthog | 5 | alias, event, identity, track | POSTHOG_URL, POSTHOG_API_KEY | | profitwell | 2 | company, metric | PROFITWELL_ACCESS_TOKEN | | pushbullet | 4 | push | PUSHBULLET_ACCESS_TOKEN | | pushcut | 1 | notification | PUSHCUT_API_KEY | | pushover | 1 | message | PUSHOVER_API_TOKEN | | quickbase | 8 | field, file, record, report | QUICKBASE_HOSTNAME, QUICKBASE_USER_TOKEN | | quickbooks | 45 | bill, customer, employee, estimate, invoice, item, payment, purchase, vendor | QUICKBOOKS_ACCESS_TOKEN, QUICKBOOKS_COMPANY_ID | | quickchart | 1 | chart | — | | raindrop | 13 | bookmark, collection, tag, user | RAINDROP_ACCESS_TOKEN | | recraft | 2 | image | RECRAFT_API_KEY | | reddit | 10 | post, comment, subreddit, user | | | replicate | 2 | image | REPLICATE_API_TOKEN | | rocketchat | 1 | chat | ROCKETCHAT_DOMAIN, ROCKETCHAT_USER_ID, ROCKETCHAT_AUTH_TOKEN | | rundeck | 2 | job | RUNDECK_URL, RUNDECK_TOKEN | | salesforce | 63 | connection, auth, limits, metadata, soql, account, contact, lead, opportunity, case, task, user, sobject | | | salesmate | 15 | company, activity, deal | SALESMATE_SESSION_TOKEN, SALESMATE_LINKNAME | | securityScorecard | 14 | company, industry, portfolio, portfolioCompany, invite, report | SECURITYSCORECARD_API_KEY | | segment | 4 | identify, track, group | SEGMENT_WRITE_KEY | | sendgrid | 10 | mail, contact, list | SENDGRID_API_KEY | | sendy | 6 | campaign, subscriber | SENDY_URL, SENDY_API_KEY | | sentry | 21 | event, issue, organization, project, release, team | SENTRY_TOKEN | | servicenow | 40 | incident, user, userGroup, userRole, businessService, configurationItem, department, tableRecord | SERVICENOW_SUBDOMAIN, SERVICENOW_USERNAME, SERVICENOW_PASSWORD | | shiftAtlas | 35 | summary, graph, stage, actor, line, journey, labels, change, task, assignment, relation, binding, evidence | SHIFT_LABS_API_KEY | | shiftBwm | 27 | objectType, definition, pipeline, record, merge, savedList, group, member, file | SHIFT_LABS_API_KEY | | shiftCrm | 40 | access, account, person, pipeline, opportunity, activity, task, record, propertyDefinition, import | SHIFT_CRM_API_KEY | | shiftObjects | 8 | object | SHIFT_LABS_API_KEY | | shiftOcr | 2 | ocr | SHIFT_LABS_API_KEY | | shiftPages | 11 | page | SHIFT_LABS_API_KEY | | shiftTranscription | 7 | transcription | SHIFT_LABS_API_KEY | | shiftWork | 29 | project, issue, issueView | SHIFT_LABS_API_KEY | | shopify | 10 | order, product | SHOPIFY_SUBDOMAIN, SHOPIFY_ACCESS_TOKEN | | signl4 | 2 | alert | SIGNL4_TEAM_SECRET | | slack | 38 | message, channel, reaction, user, userGroup, file, star | SLACK_ACCESS_TOKEN | | sms77 | 2 | sms, voice | SMS77_API_KEY | | splunk | 16 | search, alert, report, user | SPLUNK_BASE_URL, SPLUNK_AUTH_TOKEN | | spotify | 30 | player, album, artist, playlist, track, library, myData | SPOTIFY_ACCESS_TOKEN | | stackby | 4 | row | STACKBY_API_KEY | | steel | 59 | session, scrape, browser, screenshot, pdf, page, file, sessionFile, credential, profile, extension, captcha | STEEL_API_KEY | | storyblok | 7 | content, management | | | strapi | 5 | entry | STRAPI_URL | | strava | 9 | activity | STRAVA_ACCESS_TOKEN | | stripe | 20 | balance, customer, charge, coupon, customerCard, source, token, meterEvent | STRIPE_SECRET_KEY | | supabase | 5 | row | SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY | | syncromsp | 20 | customer, contact, ticket, rmmAlert | SYNCROMSP_SUBDOMAIN, SYNCROMSP_API_KEY | |

You finished the article!

Want to go deeper or explore more stories?

Chat with me