A typical developer workflow involves switching back and forth between project (usually in a code editor or IDE) and documentation (usually in a web browser). Kite is a heads-up display (HUD) that puts an end to this context switching by surfacing “proven engineering knowledge in a live internet-connected environment.” In other words, Kite is a developer sidekick powered by the cloud.
The product first debuted as a private beta in April 2016, receiving over 60,000 sign-ups and dozens of inquiries from Fortune 500 companies for an on-premise solution. Since then, the company has refined the HUD with new features, including deeper editor support, security enhancements, improvements to code analysis, a UI overhaul, a web interface, better integration with top editors, and cross-platform compatibility. Kite now has three tiers: A free version (which will “always” be offered), a Pro version ($79 per year for individuals and $189 per year for businesses, or $7.90 and $18.90 per month, respectively), and an Enterprise version for on-premise deployment.
Kite comes from Adam Smith, the founder of Xobni, an email service launched in September 2007 which Yahoo acquired in July 2013. Smith’s 12-member team has managed to secure seed funding “in excess of $4 million” from 17 investors, including well-known entrepreneurs like PayPal founder Max Levchin, Automattic founder Matt Mullenweg, Palantir founder Joe Lonsdale, Dropbox founder Drew Houston, and Twitch.tv founder Emmett Shear.
“Today programmers spend half their time in their code editors, and half their time in their browser looking for information. Kite unites these, making programmers more powerful,” Smith said in a statement. “We wanted to create the tool that we always said we wish existed.”
How it works
Kite offers plugins (open-sourced on GitHub) for popular code editors that index all your code. It then uses machine learning and type inference to offer suggestions, fix errors, and reveal examples as you type — no need to switch to a browser.
On all three operating systems, Kite has plugins for Atom, Sublime Text 3, PyCharm, and IntelliJ. There are also Mac plugins for VS Code, vim, and emacs — this is because for these three, Kite’s results appear only in the Sidebar, which is currently a Mac-only feature.
How long does it take for Kite to index your code? “Not very long at all,” Smith told VentureBeat. “It depends on how much code a given user has, but usually it’s a matter of minutes to the time the first index is built, and from there it’s less than a minute per re-build.”
Kite is not a one-trick pony — it leverages multiple sources (or as the team says, Kite uses “collective intelligence to solve problems”). Not only is the tool aware of your project’s code, but the team has put together a massive corpus of code examples.
“We looked at the state of code examples when we started Kite, and weren’t very satisfied, so we built code examples that get ran in a rich environment, can output graphics, have in-line output, etc.,” Smith told VentureBeat. “Then we hired some CS undergrads to write a corpus of over 2,000 examples, and we chose the APIs that were the most popular. We cover over 50 percent of API uses in code bases.”
Furthermore, Kite has also indexed publicly available information about libraries and APIs on the web. That includes everything available on GitHub, StackOverflow, and other web documents.The resulting Python graph has 2.7 million nodes with unique documentation snippets. Once Kite adds in the user’s code, the graph is naturally even larger.
Kite relies on Amazon Web Services, map-reduce, Postgres, plus a ton of processing with flat files and lots of memory. Smith offered some more details on what’s going on behind the scenes when you use Kite:
Kite has a lot of work to do. On every keystroke it gets a network packet, does an incremental re-parse of the code, resolves all references in the code, and will look up things like docs, examples, and so on for whatever is under the cursor.
All of this has to feel like a local app, so we target sub-10ms response times, which means we (a) needed to write Kite in a compiled/fast language (we chose Go), (b) we need to rely on a pretty stripped-down tech stack, in our case just using lots of memory, and (c) we need multi-region deployments (we operate servers in the US, Europe, and Asia).
Local code editors have the same challenge, which is why you see people complaining about their coding tools taking up ~1 GB of memory. We load more data up so we use servers with 32 GB’s of memory, but our users only have to allocate ~50 MB for Kite 🙂
(One final thing: even with the above optimizations, some users are still on network connections that add 50-100ms of network latency. Completions are the most latency-sensitive, so we prefetch completions results. In the median case when you type a keystroke Kite already has the results fetched and can return them in < 1 ms.)
The biggest obstacle Kite faces is concern surrounding privacy and security. A lot of the initial feedback when Kite was unveiled focused on the risks of uploading code to the cloud. The company responded by building greater security controls for the user on its cloud-based application, including the ability to programmatically whitelist and blacklist files and directories.
As for companies that require true peace of mind, that’s where Kite Enterprise comes in (think GitHub versus GitHub Enterprise). The company plans to roll out on-premise versions to enterprise clients across the country over “the coming months.”