Open-source Ink projects

5 mins
Contents

Projects

Monocle

Screenshot of Monocle running on iPads

Monocle is my universal, personal search engine. It can query across tens of thousands of documents from my blog posts, journal entries, notes, Tweets, contacts, and more to act as my extended memory spanning my entire life. Monocle is designed with a focus on speed, privacy, and hackability. It’s built on top of a full text search engine built from scratch in Ink that runs both natively and in the browser.

Blog post Try demo → See on GitHub →

Lucerne

A screenshot of Lucerne displaying a timeline

Lucerne is a Twitter reader and web client designed to amplify my personal Twitter workflows around learning from conversations and sharing my own writing and projects. Lucerne is built around the concept of persistent search filtered called “channels” and designed around my needs from the Twitter platform. The client is written from scratch in Ink, including the various cryptographic algorithms needed to interface with Twitter’s API.

Blog post See on GitHub →

Ink codebase browser, “Kin”

Screenshots of Ink codebase browser running on a browser window and an iPhone

The Ink codebase browser is a refined tool for exploring open-source projects on GitHub. Compared to the experience of clicking through file hierarchies and previews on GitHub’s website, this app provides you with a file tree, rich Markdown and image previews, multi-pane multi-tab layouts and first-class support for Ink syntax highlighting.

Try demo → See on GitHub →

Merlot

Photos of Merlot running on various devices

Merlot is a writing app for the Web that supports drafting in Markdown, and was designed to fit neatly into my blogging and writing workflow. It’s built entirely and purely with Ink: the Markdown engine that runs on both the backend and the web app is written in Ink. The backend is written in Ink to run natively, and the client is written in Ink and, alongside the Markdown library, compiled down to a single-page JavaScript application.

Try demo → See on GitHub →

Sistine

Screenshot of Sistine’s documentation site, built with Sistine

Sistine is a simple, flexible, productive static site generator written entirely in Ink and built on Merlot’s Markdown engine. Although it’s a work in progress, Sistine is meant to eventually become a part of my primary blogging infrastructure. The documentation site is built with Sistine already, and serves as a demo.

Visit demo site → See on GitHub →

Traceur

Path traced scene generated with Traceur

Traceur is a path-tracing renderer in Ink, supporting Monte-Carlo antialiasing, realistic shadows, reflections, refractions, and focus blur.

Blog post See on GitHub →

Klisp

The Klisp repl

Klisp is a very minimal LISP written in Ink. It’s primarily a pedagogical project – I made it to understand Lisp better. Ink’s semantics are already quite Lispy, so Klisp builds on Ink’s semantics and adds an S-expression grammar and a repl, a true read-eval-print loop, for an ergonomic Lisp experience.

Blog post See on GitHub →

Nightvale

Nightvale sandbox screenshot

Nightvale is an interactive notebook in the browser for literate programming and communicating computational ideas using prose, mathematical notation, and Klisp code. Nightvale runs entirely on Ink on the backend and on Torus on the client.

Blog post Try the Nightvale sandbox →

Histools analyzer

Histools screenshot

Histools is a collection of tools for generating heatmaps and data visualizations from browser history data. Ink is used for a small script that exports and transforms data for display.

Blog post See demo on GitHub →

Eliza

A screenshot of Eliza’s web interface

Eliza is an implementation of the classic 1960’s chat bot written in isomorphic Ink, so that the same algorithm can run on the server (through the native interpreter) and the browser (through September). This Ink version of Eliza provides a command-line chat interface and a web app powered by the same Ink algorithm.

Blog post See on GitHub → Try Eliza →

Inc(remental)

A screenshot of Inc’s history feature to see a timeline of my note-taking history

Inc (short for incremental) is a note-taking tool based on the principles of incremental note-taking, designed for quickly capturing fleeting ideas and growing a knowledge base over time. It’s built with Ink as an interactive command-line application.

Blog post See on GitHub →

Matisse

A grid of images generated by Matisse

Matisse is a minimalistic gallery of generative art pieces that are written in Ink. As a web app, Matisse depends on the September compiler to compile Ink programs and algorithms down to JavaScript.

See on GitHub → Try demo →

Micropress

Micropress is an Ink library for automatic text summarization, using an extractive algorithm built on a custom tokenizer from the Monocle project. Micropress can take an arbitrarily long document, like a blog post, and generate a summary of much shorter length by finding key sentences in the document that are most representative of the main ideas in the text.

See on GitHub →

Polyx

Polyx is Linus’s personal productivity suite which includes services like file sync, notes, contacts, and other information management tools.

See on GitHub →

August

August is an educational assembler written from scratch in Ink, supporting 64-bit x86 ELF executables to start with more under development. It features an x86_64 instruction encoder and ELF file format library written in Ink.

Blog Part I Blog Part II See on GitHub →

Codeliner

Codeliner generates graphics from program source files that mimic the shape of code displayed on the page.

See on GitHub →

Language tooling

Ink playground, “Maverick”

Screenshot of Ink playground running a prime sieve program

Maverick is a simple web IDE and REPL for Ink, written in pure Ink and built on a self-hosted September compiler toolchain that runs entirely in the browser. September, the Ink-to-JavaScript compiler, was compiled to JavaScript using itself for this project so that it could compile other Ink programs in the browser.

Blog post Try demo → See on GitHub →

September

September is an Ink to JavaScript compiler, written in Ink itself and tested against Ink’s standard library tests. September is also self-hosting – it can compile itself on Node.js or in the browser.

Blog post See on GitHub →

Ink by Example

Ink by Example is a hands-on introduction to programming in Ink using annotated example programs. The website is run by @healeycodes and powered by Ink.

Visit Ink by Example →

dotink

This website is served by a web server written in Ink.

See on GitHub →

inkfmt

inkfmt screenshot

inkfmt is a self-hosting code formatter for Ink used in almost every Ink project. Under the hood, inkfmt implements a tokenizer for Ink written in Ink itself.

Blog post See on GitHub →

Libraries

ansi.ink

ansi.ink demo

ansi is an Ink library for printing with ANSI escape sequences to a terminal emulator. It supports basic ANSI colors and cursor movements.

Blog post See on GitHub →