Skip to content

Instantly share code, notes, and snippets.

Last active January 6, 2024 07:19
Show Gist options
  • Save rauchg/5b032c2c2166e4e36713 to your computer and use it in GitHub Desktop.
Save rauchg/5b032c2c2166e4e36713 to your computer and use it in GitHub Desktop.


Since Twitter doesn't have an edit button, it's a suitable host for JavaScript modules.

How to use

Source tweet:

const leftPad = await requireFromTwitter('712799807073419264');
console.log(leftPad(1, 5));      // '00001'
console.log(leftPad(1234, 5));   // '01234'
console.log(leftPad(12345, 5));  // '12345'

Running this example

# populate `twitter-config.json` with your API tokens
$ npm install
$ npm test
import { babel } from './package';
import { transform } from 'babel-core';
import { decodeHTML as decode } from 'entities';
import Twit from 'twit';
// edit twitter-config.json first
const twit = new Twit(require('./twitter-config'));
export default async function requireFromTwitter (id) {
const tweet = await twit.get(`/statuses/show/:id`, { id });
if (tweet.errors) throw new Error(`Cannot find module '${id}'`);
const { text } =;
const exports = {};
eval(transform(decode(text), babel).code);
return exports.default;
"name": "require-from-twitter",
"version": "0.0.1",
"description": "require(), but from a tweet",
"dependencies": {
"babel-preset-stage-0": "6.5.0",
"babel-preset-es2015": "6.6.0",
"babel-runtime": "6.6.1",
"babel-plugin-transform-runtime": "6.6.0",
"babel-cli": "6.6.5",
"babel-core": "6.7.4",
"twit": "2.2.3",
"entities": "1.1.1"
"babel": {
"presets": [
"plugins": [
"scripts": {
"test": "babel-node test"
import requireFromTwitter from './';
.then((leftPad) => {
console.log(leftPad(1, 5));
console.log(leftPad(1234, 5));
console.log(leftPad(12345, 5));
}, (err) => console.error(err.stack));
"consumer_key": "",
"consumer_secret": "",
"access_token": "",
"access_token_secret": ""
Copy link

wow.....this changes how we see the cloud.

Copy link

pengx17 commented Mar 25, 2016

Time for a TPM (Twitter Package Manager)

Copy link

You, Sir, have won the internet!

Reminds me of (who needs NPM anyway?)

Copy link

I took this a little more seriously, I think this might actually help out:

Create a file with a list of one-liners from anywhere (gist, github raw file, etc). It will pull them once into a directory and expose them via an index.js.

Copy link

yisibl commented Mar 25, 2016

It doesn't work in China. 😂

Copy link

fordnox commented Mar 25, 2016

waiting for 'require from DNS TXT record'

Copy link

What about the simple :


Copy link

Looks safe

Copy link

Excellent. I just hosted all my shell scripts on Twitter and now hashtag "!" is trending

Copy link

rgaidot commented Mar 26, 2016


Copy link

this relies on centralized infrastructure operated by a corporation!
The only safe way to do this is to use my package ... require-from-torrent.


Copy link


What about require-from-blockchain? That cannot be deleted or taken down. Never ever!

Copy link

This is great. Just pushed to production, thanks! Never using NPM again.

Copy link

is it possible to use inside the tweet and then require functions from other tweets?

Copy link

tsia commented Mar 31, 2016

how about a google cache fallback for deleted tweets?

Copy link

vrunoa commented Apr 1, 2016

Copy link

calsioro commented Apr 7, 2016

Port it to rebmu!
Actually useful!

Copy link

awnumar commented May 7, 2016

This is actually pretty clever. Inspired me to make a python version:

Copy link

So.... basically like 25-50% of sindresorhus' modules can use this, no problem. Right?

Copy link

This will never make it in Enterprise™! We'll have import-all-from-linkedin instead.

Copy link

waki285 commented Jul 12, 2023

Elon Musk:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment