shellac-server 0.3.1

Shell-Agnostic Completion server: command argument autocompletion description
shellac-server-0.3.1 is not a library.

See and for information about this repo


The end result aims toward being a binary that

  • Replies to requests with minimal latency. Ideally, less than 10ms for static completion so it's not even visible for users
  • Is able to support as-you-type completion. That means caching should be used a lot to avoid duplicating work
  • Handle multiple (up to ~20) concurrent clients while keeping latency low for each one of them
  • Support definitions of parameters
  • Support invoking various external commands for dynamic completion


See the original and adapted proposals for formal specs.

Informal demo shellac definition files can be found in the completion folder.

Integration with shells

Communication is handled via cap'n proto using the definition found in shellac.capnp. Shell can choose to start a binary per request (simple but slow), or the recommended setup of using a socket for shared, extended communications. This is a preliminary version, and as such the API is not yet finalised. Focus is currently more on stabilizing the definition file format rather than the shell-facing protocol, so change is to be expected.


Reach out at for discussion and feel free to open issues and MR. Any help is really appreciated.