I'm Alex, founder of Interval [0]. We’re bringing internal tools written like CLIs to the browser to make them more powerful, through a Node.js SDK which attaches them to a hosted dashboard without any frontend code. Large companies have full teams that work on internal dashboards and tooling. Interval brings that infrastructure to anyone.
In our previous project we had ~65 CLI scripts for tasks like provisioning user accounts, moderating content, and migrating data. These were quick to write and powerful. They also turned into an ongoing timesuck. Non-technical coworkers needed to bother an engineer every time to run one. Some of them were powerful enough to be footguns, and because we had to rewrite validation every time, we were always a bit scared of them.
We wanted to bring the power and speed of cranking out CLI scripts into the world of modern software development: testable, easy to expose to colleagues via a URL, and works with Everything Else by default. That’s why we made Interval.
We built:
- A Node.js + TypeScript SDK – this embeds in your backend codebase and provides APIs for defining tools + collecting input + displaying output. These APIs are simple awaitable functions that return parsed, validated, and soundly-typed user input. You put your Interval actions in source control, test them, run CI/etc exactly like you do for all your other backend code.
- A hosted UI, which handles I/O for the scripts in a less brittle way than command line arguments do, while also taking care of auth, permissions, and audit logs.
This lets you take your CLI commands out of an engineer’s terminal and share them with the whole company. Give support the ability to ban spammers but not drop the prod DB. Require two people for sensitive actions. Echo commands to a Slack channel. It’s a powerful set of primitives out of the box and lets you do anything else you want in the code you’re already writing, without making you have to spin up a second company just to support your internal tools.
Under the hood, your CLIs and the hosted dashboard talk through a 2-way message passing system. We felt this approach was the best of both worlds:
- UIs are hosted by Interval: We build, host, and maintain the part most people don't care about for internal tools.
- Backends are self-hosted: We can't see your business logic, secrets, etc.
We're in public beta today. I hope you like it and I'm happy to answer any questions/feedback in the comments.
[0]: https://interval.com
Is that an accurate description of what you’re trying to build? Calling Interval a “CLI in the browser” made me think you had a command line in the browser, something like xterm.JS.
I don’t have anything else to say, I think the idea speaks for itself.
Other than that I love the concept; someone like me who sucks at creating UI's really benefits from something like this (:
For python scripts I've had some success with Gooey that turns an ArgParser description into a usable (if ugly) UI running locally.
At some point I tried to turn it into a web front end (probably called Wooey) but it ended up in the same pile of half-baked projects I have floating around.
I actually gave Alex from Interval a demo of our product about a year ago when they were working on something different. Maybe they got some inspiration from that conversation. Best of luck to them!