Skip to content

Latest commit

Β 

History

21 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

VSH - Vic's Shell

A shell for everyone, built by everyone.


🎯 What is VSH?

VSH is a next-generation command-line shell that maintains full power while making the terminal accessible to beginners and more productive for everyone.

The Problem

Traditional shells are incredible tools, but they're needlessly cryptic:

  • find . -type f -name "*.txt" -exec grep -l "pattern" {} \; ← What does this even do?
  • Commands like cp, mv, rm aren't intuitive
  • One misplaced quote breaks everything
  • Error messages are hostile
  • The learning curve keeps brilliant people away from the command line

The Solution

VSH offers cognitive flexibility - the same command works in multiple syntaxes:

# Power user (terse)
cp file.txt backup/

# Beginner (verbose)
copy file.txt to backup/

# Explicit (named parameters)
copy source=file.txt destination=backup/

# All three work! Pick what makes sense to YOUR brain.

✨ Key Features

🧠 Adaptive Intelligence

VSH learns your preferences and adapts:

  • Auto-completion matches your style
  • Suggestions improve over time
  • Errors become more helpful as it learns what confuses you

πŸ“ Multiple Syntax Styles

Every command supports terse, verbose, and named-parameter syntax. Use what feels natural.

πŸ’‘ Intelligent Errors

$ copy nonexistent.txt backup/
βœ— Error: Source file does not exist

The file 'nonexistent.txt' could not be found.

Suggestion: Did you mean one of these?
  β†’ copy document.txt to backup/
  β†’ copy notes.txt to backup/

[?] Need help? Type 'help copy'

πŸ”„ Full Bash Compatibility

Run your existing .sh scripts without changes. VSH automatically detects and handles them.

πŸ“œ Readable Scripts

Write .vsh scripts that read like pseudocode:

#!/usr/bin/env vsh

backup_dir = "~/backups"

if not directory-exists $backup_dir then
    create-directory $backup_dir
end

for file in *.txt do
    copy $file to $backup_dir
    echo "Backed up: $file"
end

πŸš€ Status

Current: Specification Phase
Next: Community Building & MVP Development
Timeline: First release target - Q3 2026

We're building this in the open from day one. Join us!


🀝 Community-Driven

VSH isn't built by one person - it's built by everyone who uses it.

Why?

  • A shell for all skill levels needs input from all skill levels
  • Diverse perspectives = better design
  • Sustainable beyond any single maintainer
  • Your voice matters

How to Contribute:

  • 🌟 Star this repo
  • πŸ’¬ Join our Discord (coming soon)
  • πŸ“– Read CONTRIBUTING.md
  • πŸ› Report bugs and suggest features
  • πŸ’» Write code
  • πŸ“ Improve documentation
  • πŸŽ“ Help other users

No experience required. We mentor new contributors!


πŸ“š Documentation


πŸ—οΈ Project Structure

vsh/
β”œβ”€β”€ README.md                  # You are here
β”œβ”€β”€ VSH_SPECIFICATION.md       # Complete spec
β”œβ”€β”€ CONTRIBUTING.md            # Contribution guide
β”œβ”€β”€ GOVERNANCE.md              # Decision-making process
β”œβ”€β”€ CODE_OF_CONDUCT.md         # Community standards
β”œβ”€β”€ Cargo.toml                 # Rust project (coming soon)
β”œβ”€β”€ src/                       # Source code (coming soon)
β”œβ”€β”€ tests/                     # Test suite (coming soon)
β”œβ”€β”€ docs/                      # Documentation (coming soon)
β”‚   β”œβ”€β”€ rfcs/                  # RFCs for major decisions
β”‚   └── commands/              # Command reference
└── examples/                  # Example .vsh scripts (coming soon)

🎯 Design Philosophy

  1. Cognitive Flexibility - Support how different brains think
  2. Progressive Disclosure - Simple for beginners, powerful for experts
  3. Helpful by Default - Errors teach, don't frustrate
  4. Community-Driven - Built by everyone, for everyone
  5. No Compromises - Full shell power, zero degradation

πŸ›£οΈ Roadmap

Phase 1: MVP (Q2 2026)

  • Core parser for 5-10 commands
  • Multi-syntax support (terse, verbose, named)
  • Basic error handling
  • Configuration file support

Phase 2: Intelligence (Q3 2026)

  • User profiling system
  • Adaptive auto-completion
  • Smart error suggestions
  • Learning algorithm

Phase 3: Scripting (Q4 2026)

  • Full .vsh scripting support
  • Variables and control flow
  • Functions
  • Bash compatibility mode

Phase 4: Polish (Q1 2027)

  • Performance optimization
  • Comprehensive help system
  • Plugin architecture
  • Production-ready release

Phase 5: Ecosystem (2027+)

  • Package manager
  • Standard library
  • Editor integration
  • Migration tools

See full roadmap in VSH_SPECIFICATION.md


πŸ’» Quick Start (Coming Soon)

# Install (future)
cargo install vsh

# Or build from source
git clone https://github.com/vsh-shell/vsh.git
cd vsh
cargo build --release
cargo install --path .

# Run
vsh

πŸŽ“ Examples

File Operations

# Copy files
copy file.txt to backup/
cp file.txt backup/
copy source=file.txt destination=backup/

# Move files
move old.txt to new.txt
mv old.txt new.txt
move from=old.txt to=new.txt

# Remove files
remove file.txt
rm file.txt
delete file=file.txt

Finding Files

# Traditional
find . -name "*.txt"

# Verbose
find files named "*.txt"

# Named parameters
find path=. name="*.txt" type=file

Pipes

# All equivalent
cat file.txt | grep pattern | sort
cat file.txt -> grep pattern -> sort
cat file.txt then grep pattern then sort

Scripts

#!/usr/bin/env vsh

# Variables
name = "World"

# Conditionals
if file-exists "data.txt" then
    echo "Processing data..."
    process-data "data.txt"
else
    echo "No data file found"
end

# Loops
for file in *.txt do
    echo "Processing: $file"
    copy $file to backup/
end

# Functions
function greet name
    echo "Hello, $name!"
end

greet $name

❓ FAQ

Is VSH a fork of bash/zsh?

No, it's built from scratch in Rust, but it can run bash scripts.

Will my bash scripts work?

Yes! VSH detects .sh files and runs them in compatibility mode.

Is this dumbed-down for beginners?

Not at all! It's the same power as bash/zsh, just more accessible.

Can power users still be efficient?

Absolutely! Terse syntax works exactly like traditional shells.

Why not just learn bash?

You should! VSH doesn't replace learning; it makes it easier.

How is this different from Fish/Nushell?

  • Fish: Great UX, but different syntax breaks muscle memory
  • Nushell: Innovative structured data, but steep learning curve
  • VSH: Traditional + modern, multiple syntaxes, learns your style

When will it be ready?

First usable release: Q3 2026. Production-ready: Q1 2027.

How can I help?

Read CONTRIBUTING.md and join the community!


🌟 Core Team

Founder: Victor Soto Core Team: TBD (First election: June 2026)
Contributors: See CONTRIBUTORS.md


πŸ“œ License

MIT License

Copyright Β© 2026 VSH Contributors

See LICENSE for details.


πŸ”— Links


πŸ™ Acknowledgments

VSH is inspired by the incredible work of:

  • Fish Shell team
  • Nushell team
  • PowerShell team
  • Bash, Zsh, and all the shells that came before
  • Every developer who's ever been frustrated by find . -type f -name "*.txt" -exec grep -l "pattern" {} \;

πŸ’¬ Join the Conversation

Have questions? Ideas? Want to help?

  • πŸ’‘ Ideas: GitHub Discussions
  • πŸ› Bugs: GitHub Issues
  • πŸ’¬ Chat: Discord (coming soon)
  • πŸ“§ Email: (coming soon)

A shell for everyone, built by everyone.

⭐ Star this repo to show support
πŸ”” Watch for updates
🍴 Fork to contribute

Let's make the command line accessible to millions.

Welcome to VSH. πŸš€

About

A shell for everyone, built by everyone. Cognitive flexibility meets full shell power.

Topics

Resources

Code of conduct

Contributing

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages