All Projects → artpi → Roam Research Private Api

artpi / Roam Research Private Api

Private API to enable API access for Roam Research. Now you can connect Roam to your other projects.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Roam Research Private Api

Puppeteer Walker
a puppeteer walker 🕷 🕸
Stars: ✭ 78 (-11.36%)
Mutual labels:  chrome, puppeteer
Sms Boom
利用chrome的headless模式,模拟用户注册进行短信轰炸机
Stars: ✭ 507 (+476.14%)
Mutual labels:  chrome, puppeteer
Singlefile
Web Extension for Firefox/Chrome/MS Edge and CLI tool to save a faithful copy of an entire web page in a single HTML file
Stars: ✭ 4,417 (+4919.32%)
Mutual labels:  chrome, puppeteer
Serverless Puppeteer Layers
Serverless Framework + AWS Lambda Layers + Puppeteer = ❤️
Stars: ✭ 247 (+180.68%)
Mutual labels:  chrome, puppeteer
Url To Pdf Api
Web page PDF/PNG rendering done right. Self-hosted service for rendering receipts, invoices, or any content.
Stars: ✭ 6,544 (+7336.36%)
Mutual labels:  chrome, puppeteer
Puppetcam
Export puppeteer tab as webm video
Stars: ✭ 279 (+217.05%)
Mutual labels:  chrome, puppeteer
Puppetron
Puppeteer (Headless Chrome Node API)-based rendering solution.
Stars: ✭ 429 (+387.5%)
Mutual labels:  chrome, puppeteer
Element
💦Load test your app using real web browsers
Stars: ✭ 204 (+131.82%)
Mutual labels:  chrome, puppeteer
Puppeteer Api Zh cn
📖 Puppeteer中文文档(官方指定的中文文档)
Stars: ✭ 697 (+692.05%)
Mutual labels:  chrome, puppeteer
Puppeteer Lambda Starter Kit
Starter Kit for running Headless-Chrome by Puppeteer on AWS Lambda.
Stars: ✭ 563 (+539.77%)
Mutual labels:  chrome, puppeteer
Flaresolverr
Proxy server to bypass Cloudflare protection
Stars: ✭ 241 (+173.86%)
Mutual labels:  chrome, puppeteer
Puppeteer Deep
Puppeteer, Headless Chrome;爬取《es6标准入门》、自动推文到掘金、站点性能分析;高级爬虫、自动化UI测试、性能分析;
Stars: ✭ 1,033 (+1073.86%)
Mutual labels:  chrome, puppeteer
Qawolf
🐺 Create browser tests 10x faster
Stars: ✭ 2,912 (+3209.09%)
Mutual labels:  chrome, puppeteer
Jest Puppeteer
Run your tests using Jest & Puppeteer 🎪✨
Stars: ✭ 3,267 (+3612.5%)
Mutual labels:  chrome, puppeteer
Puppeteer Extra
💯 Teach puppeteer new tricks through plugins.
Stars: ✭ 3,397 (+3760.23%)
Mutual labels:  chrome, puppeteer
Whatspup
🔳 WhatsApp chat from commandline/console/cli using GoogleChrome puppeteer
Stars: ✭ 310 (+252.27%)
Mutual labels:  chrome, puppeteer
Headless Recorder
Chrome extension that records your browser interactions and generates a Playwright or Puppeteer script.
Stars: ✭ 13,786 (+15565.91%)
Mutual labels:  chrome, puppeteer
Jvppeteer
Headless Chrome For Java (Java 爬虫)
Stars: ✭ 193 (+119.32%)
Mutual labels:  chrome, puppeteer
Headless Chrome Crawler
Distributed crawler powered by Headless Chrome
Stars: ✭ 5,129 (+5728.41%)
Mutual labels:  chrome, puppeteer
Puppeteer Sharp Extra
Plugin framework for PuppeteerSharp
Stars: ✭ 39 (-55.68%)
Mutual labels:  chrome, puppeteer

Roam Private API

This project exposes command line tool (roam-api) and a node library to connect Roam Research to your other software. You can use it in bash scripts, Github actions, or as a dependency of your project.

How does it work?

It looks like Roam is not providing a REST API any time soon. If you want to bridge Roam with your other software, you can do so from within Roam (with JavaScript), but that has limited number of use cases. Without a REST API, this project launches an invisible browser and performs automated actions, just as you would manually. No need to install chrome, this library comes with one. It uses your login and password, so this won't work if you are using Google login. It wraps around import/export functionality and actions exposed via roamAlphaApi.

Command line tool roam-api

This package exposes a roam-api tool in your system. You can use it to automate Roam and bridge other systems with your Roam graph.

Installation:

This entire library is build on node, so you need node v12 and npm v6 in your system. You can install the package the following way:

npm i -g roam-research-private-api

Now you can use a variety of commands. All command take the following arguments, which you can also set as environmental variables:

  • -g, --graph or env variable ROAM_API_GRAPH - this is your graph name
  • -e, --email or env variable ROAM_API_EMAIL - email to log into your Roam
  • -p, --password or env variable ROAM_API_PASSWORD - password to your Roam.

roam-api export will export your Roam graph to a directory of your choice.

This example will export the graph to your desktop. It will appear as "db.json".

roam-api export ~/Desktop

It can also push the new version of the graph to an URL of your choosing. That way, you can upload the graph to some other system or use it with Zapier and similar tools.

roam-api export ~/Desktop http://secret.url?token=secret_token.

roam-api search will search your Roam graph for a phrase:

roam-api search "potatoes"

Result will be JSON array of objects { blockUid, pageTitle, string }

roam-api-query will let you do a full Datalog query.

This will find all block uids in your database which have the content "Import".

roam-api query '[:find ?uid :where [?b :block/string "Import"] [?b :block/uid ?uid]]'

Check out this fantastic article to know more about the Roam data structure.

roam-api create create a block under specified uid. If no uid is provided, it will be inserted into your daily page:

roam-api create "This will be prepended to my daily page"

Library to use in your project.

As mentioned, this is also a library that you can use within your project. Here are examples on how to do so:

Pull requests welcome and I take no responsibility in case this messes up your Roam Graph :).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].