Better API DX with a CLI
Application Programming Interface
Developer eXperience
Command Line Interface
@philnash
Slide 5
Slide 5 text
Developer
experience
@philnash
Slide 6
Slide 6 text
We built a CLI
@philnash
Slide 7
Slide 7 text
$ twilio
@philnash
Slide 8
Slide 8 text
We built a CLI
Node.js
oclif
npm & brew
@philnash
Slide 9
Slide 9 text
Know your audience
Not everyone will want to use a CLI
Hypothesis: developers prefer the
command line to the console
Hypothesis: developers would like to
automate Twilio actions
@philnash
Slide 10
Slide 10 text
Not all CLIs are
created equal
@philnash
Slide 11
Slide 11 text
Building a CLI for an API -
3 questions
What's the minimum a CLI can do to be
useful?
What can you add to a CLI to make it a
better experience?
What can your users add to the CLI?
@philnash
Slide 12
Slide 12 text
Minimum Viable
CLI
@philnash
Slide 13
Slide 13 text
Minimum Viable CLI
Commands for your API endpoints
Documentation
You probably want to generate these
commands
@philnash
Slide 14
Slide 14 text
Minimum Viable CLI
Commands for your API endpoints
Documentation
Secure credential storage
@philnash
Slide 15
Slide 15 text
Better built in
experience
@philnash
Slide 16
Slide 16 text
Better built in experience
$ twilio api
$ twilio --help
@philnash
Slide 17
Slide 17 text
Better built in experience
Autocomplete
Shortcuts
Extra APIs
Feedback
Extra capabilities for specific APIs
@philnash
Slide 18
Slide 18 text
Who else can
contribute to the
experience?
@philnash
Slide 19
Slide 19 text
$ twilio plugins
@philnash
Slide 20
Slide 20 text
Building a CLI for an API -
3 questions
What's the minimum a CLI can do to be
useful?
What can you add to a CLI to make it a
better experience?
What can your users add to the CLI?
@philnash