{"id":28089435,"url":"https://github.com/johanli233/viby","last_synced_at":"2025-10-08T18:00:11.866Z","repository":{"id":290901725,"uuid":"975240519","full_name":"JohanLi233/viby","owner":"JohanLi233","description":"Viby vibes everything.","archived":false,"fork":false,"pushed_at":"2025-05-08T08:43:20.000Z","size":1422,"stargazers_count":45,"open_issues_count":3,"forks_count":2,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-05-08T09:37:51.062Z","etag":null,"topics":["llm","mcp","shell","uv"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JohanLi233.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-30T02:19:50.000Z","updated_at":"2025-05-08T09:20:04.000Z","dependencies_parsed_at":"2025-05-08T09:28:38.410Z","dependency_job_id":null,"html_url":"https://github.com/JohanLi233/viby","commit_stats":null,"previous_names":["johanli233/viby"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohanLi233%2Fviby","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohanLi233%2Fviby/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohanLi233%2Fviby/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohanLi233%2Fviby/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JohanLi233","download_url":"https://codeload.github.com/JohanLi233/viby/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253948379,"owners_count":21988953,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["llm","mcp","shell","uv"],"created_at":"2025-05-13T12:58:00.864Z","updated_at":"2025-10-08T18:00:11.844Z","avatar_url":"https://github.com/JohanLi233.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/JohanLi233/viby/main/assets/viby-icon.png\" alt=\"Viby Logo\" width=\"120\" height=\"120\"\u003e\n  \u003ch1\u003eViby\u003c/h1\u003e\n  \u003c!-- \u003cp\u003e\u003cstrong\u003eViby vibes everything\u003c/strong\u003e - Your universal agent for solving any task\u003c/p\u003e --\u003e\n  \u003cp\u003e\u003cstrong\u003eViby vibes everything\u003c/strong\u003e\u003c/p\u003e\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/JohanLi233/viby\"\u003e\u003cimg src=\"https://img.shields.io/badge/GitHub-viby-181717?logo=github\" alt=\"GitHub Repo\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://pypi.org/project/viby/\"\u003e\u003cimg src=\"https://img.shields.io/pypi/v/viby?color=brightgreen\" alt=\"PyPI version\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.python.org/downloads/release/python-3100/\"\u003e\u003cimg src=\"https://img.shields.io/badge/python-3.10%2B-blue\" alt=\"Python Version\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.gnu.org/licenses/gpl-3.0\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-GPLv3-blue.svg\" alt=\"License: GPL v3\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/astral-sh/uv\"\u003e\u003cimg src=\"https://img.shields.io/badge/UV-Package%20Manager-blueviolet\" alt=\"UV\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/estitesc/mission-control-link\"\u003e\u003cimg src=\"https://img.shields.io/badge/MCP-Compatible-brightgreen\" alt=\"MCP\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://deepwiki.com/JohanLi233/Viby\"\u003e\u003cimg src=\"https://deepwiki.com/badge.svg\" alt=\"Ask DeepWiki\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/JohanLi233/viby/blob/main/README.md\"\u003eEnglish\u003c/a\u003e |\n  \u003ca href=\"https://github.com/JohanLi233/viby/blob/main/README.zh-CN.md\"\u003e中文\u003c/a\u003e\n\u003c/p\u003e\n\n## 🚀 Overview\n\nViby is a powerful AI agent that lives in your terminal, designed to solve virtually any task you throw at it. Whether you need code assistance, shell commands, information retrieval, or creative content - Viby vibes with your needs and delivers solutions instantly.\n\n## ✨ Features\n\n- **Intelligent Conversations** - Engage in natural multi-turn dialogues\n- **Automatic Shell Command Generation** - Get optimized shell commands when needed\n- **Pipeline Integration** - Process data from other commands (e.g., `git diff | viby \"write a commit message\"`)\n- **MCP Tools** - Extended capabilities through Model Context Protocol integration\n- **Smart Tool Discovery** - Automatically finds and uses the most relevant tools within configured MCP servers\n- **Enhanced History Management** - Complete interaction history with search, export, and management\n- **Multiple Model Support** - Configure and use different models for various tasks\n- **Command Embeddings** - Semantic search in tools using embedded vectors for accurate tool selection\n- **Multi-language Support** - Full interface in English and Chinese with easy language switching\n\n\u003c!-- ![Viby Terminal Demo](https://raw.githubusercontent.com/JohanLi233/viby/main/assets/screenshot.png) --\u003e\n\n## 🔧 Installation\n\n```sh\n# Install from PyPI\npip install viby\n# OR\nuv tool install viby\n```\n\n### Alternative Installation\n\n```sh\n# Install from source with uv\nuv pip install -e .\n```\n\n## Usage Examples\n\n### Basic Question\n\n```sh\nyb vibe \"Write a quicksort in python\"\n# -\u003e Sure! Here is a quicksort algorithm implemented in **Python**:\n```\n\n### Simplified Command\n\n```sh\nyb \"Write a quicksort in python\"\n# -\u003e Same result as above\n```\n\n### Process Piped Content\n\n```sh\ngit diff | yb vibe \"Generate a commit message\"\n# -\u003e Added information to the README\n```\n\n```sh\nyb vibe \"What is this project about?\" \u003c README.md\n# -\u003e This project is about...\n```\n\n### Generate Shell Command\n\n```sh\nyb vibe \"How many lines of python code did I write?\"\n# -\u003e find . -type f -name \"*.py\" | xargs wc -l\n# -\u003e [r]run, [e]edit, [y]copy, [c]chat, [q]quit (default: run): \n```\n\n### Advanced Model Selection\n\n```sh\n# Use think model for complex analysis\nyb --think vibe \"Analyze this complex algorithm and suggest optimizations\"\n\n# Use fast model for quick responses\nyb --fast vibe \"Translate 'Hello, World!' to French\"\n```\n\n### Shell Command Magic Integration\n\n```sh\n# List directory contents\nyb vibe \"$(ls) What files are in the current directory?\"\n# -\u003e The current directory contains: file1.txt, file2.py, directory1/...\n\n# Analyze Git status\nyb vibe \"$(git status) Which files should I commit first?\"\n\n# View code files\nyb vibe \"$(cat main.py) How can I improve this code?\"\n```\n\n### Smart Tool Discovery\n\n```sh\n# Viby will automatically discover and use relevant tools\nyb vibe \"What's the weather in San Francisco?\"\n# -\u003e [Viby identifies and uses weather tools]\n# -\u003e The current weather in San Francisco is 68°F and partly cloudy...\n\n# Embedding Model Management\n# First download the embedding model (required once before using embedding features)\n# Embed model configurable with yb --config\nyb tools embed download\n\n# Start the embedding server (required for tool discovery)\nyb tools embed start\n\n# Check embedding server status\nyb tools embed status\n\n# Update tool embeddings from configured MCP servers\nyb tools embed update\n\n# List available tools (udpate before listing)\nyb tools list\n\n# Stop the embedding server when not needed\nyb tools embed stop\n```\n\n### Automatically Use MCP Tools When Needed\n\n```sh\nyb vibe \"What time is it now?\"\n# -\u003e [AI uses time tool to get current time]\n# -\u003e \"datetime\": \"2025-05-03T00:49:57+08:00\"\n```\n\n### Keyboard Shortcuts\n\nViby provides a convenient keyboard shortcut (Ctrl+Q) that allows you to quickly use Viby with the current command line content:\n\n```sh\n# Install the keyboard shortcuts (auto-detects your shell)\nyb shortcuts\n\n# After installation, type any command and press Ctrl+Q\nhelp me analyze my readme file  # Now press Ctrl+Q\n# -\u003e This transforms into: yb vibe help me analyze my readme file\n# -\u003e [AI analyzes and responds to question]\n```\n\nSupported shells:\n\n- Bash\n- Zsh\n- Fish\n\nAfter installing shortcuts, you'll need to reload your shell configuration (`source ~/.bashrc`, `source ~/.zshrc`, or equivalent) or restart your terminal for the shortcuts to take effect.\n\n## Command Structure\n\nViby uses a simple command structure:\n\n```\nyb [OPTIONS] [COMMAND] [ARGS]...\n```\n\nMain commands:\n- `yb [prompt]` - Ask a question (alias for `yb vibe \"your question\"`; **recommended**)\n- `yb vibe \"your question\"` - Ask a question (default command for questions)\n- `yb --think vibe \"complex question\"` - Use the think model for deeper analysis\n- `yb --fast vibe \"simple question\"` - Use the fast model for quick responses\n- `yb history` - Manage interaction history\n- `yb tools` - Manage tool-related commands\n- `yb shortcuts` - Install keyboard shortcuts\n\nUse `yb --help` to see all available commands and options.\n\n## Configuration\n\nViby reads configuration from `~/.config/viby/config.yaml`. You can set the model, parameters, and MCP options here.\n\n### Interactive Configuration\n\nUse the configuration wizard to set up your preferences:\n\n```sh\nyb --config\n```\n\nThis allows you to configure:\n\n- API endpoint and key\n- Model\n- Temperature and token settings\n- MCP tools enablement\n- Interface language\n- Embedding model settings\n\n### MCP Server Configuration\n\nViby supports Model Context Protocol (MCP) servers for extended capabilities. MCP configurations are stored in `~/.config/viby/mcp_servers.json`.\n\n## 📄 Documentation\n\n- [Usage Examples](./docs/viby_usage_examples.md) - Detailed examples of all Viby features\n- [Project Design Document](./docs/viby_project_design.md) - Technical architecture and design\n\n## 🤝 Contributing\n\nContributions are welcome! Feel free to submit a Pull Request or create an Issue.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohanli233%2Fviby","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohanli233%2Fviby","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohanli233%2Fviby/lists"}