Skip to content

livecommands/spec

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

LiveCommands Manifesto

The Problem We Solve

Command-line interfaces have become the backbone of developer productivity, yet they remain stuck in the past. We waste countless hours:

  • Writing help text that becomes outdated the moment code changes
  • Answering the same questions because tools are hard to discover
  • Debugging cryptic errors that teach users nothing
  • Maintaining separate documentation that never stays in sync

Meanwhile, users struggle with:

  • Hidden functionality they never discover
  • Frustrating error messages that require source code diving
  • Steep learning curves for every new tool
  • Documentation hunting instead of actual work

Our Vision

We envision a world where CLI tools are self-teaching, discoverable, and delightful to use.

Where developers can focus on building features instead of maintaining documentation, and users can learn tools naturally through exploration rather than manual reading.

Core Principles

1. Zero Boilerplate

Help text should be automatically generated from code, not manually maintained.

Your method names, parameter descriptions, and code structure are the documentation. When you change your code, the help changes with it—automatically, instantly, accurately.

2. Runtime Discovery

Users should explore functionality naturally, not memorize commands.

Commands reveal themselves through intelligent exploration. Users learn by doing, not by reading lengthy manuals. The interface teaches itself through context-aware guidance and progressive disclosure.

3. Intelligent Errors

Errors should educate, not just complain.

When users make mistakes, the system provides clear, actionable guidance. Error messages become learning opportunities that teach proper usage and help users understand the tool better.

4. Fluent Experience

Interfaces should feel conversational, not transactional.

Command-line interactions should flow naturally, like a conversation with an expert guide. Users express intent, and the system understands context.

The LiveCommands Difference

Before LiveCommands

$ mytool --help
# Output: Generic help text you wrote six months ago
# Reality: Half the options have changed or been removed

$ mytool subcommand --wrong-option
# Output: Error: invalid option --wrong-option
# User: What's the right option? Guess I'll Google it...

With LiveCommands

$ mytool
# Output: Available commands: build, deploy, test, monitor
#         Use 'mytool <command> --help' for detailed help

$ mytool build --wrong-option
# Output: Unknown option: --wrong-option
#         Did you mean --output? Available options: --output, --verbose, --force
#         Usage: mytool build [--output DIR] [--verbose] [--force]

Our Promise

To Developers: Stop writing documentation. Start building experiences. Focus on your features, not your help text.

To Users: Stop reading manuals. Start exploring tools. Learn naturally through interaction, not memorization.

Join the Movement

Current Implementations

Get Involved

The Future We're Building

We're creating an ecosystem where:

  • Every CLI tool is instantly understandable
  • Documentation never gets outdated
  • Users learn by doing, not by reading
  • Developers focus on features, not help text
  • Command-line interfaces feel magical, not mechanical

Stop writing documentation. Start building experiences.

Join us in making CLI tools people actually love to use.

About

LiveCommands Specification and Manifesto

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published