1 line
9.2 KiB
JSON
1 line
9.2 KiB
JSON
{"repo": "adwints/devterm", "files": {"README.md": {"acecc70c5d80b9f3055e8ce084b7b1b1421d5f32": {"t": 1785674375.900874, "n": 8538, "h": "577e57825ce6d662", "c": "# DevTerm\n\n> A modern developer-focused terminal built in Python — shell commands, productivity tools, AI assistance, live weather, and a plugin system. All in one CLI.\n\n\n\n\n\n---\n\n## ✨ Features\n\n| Phase | Feature | Commands |\n|-------|---------|----------|\n| 1 | Shell commands | `ls` `cd` `mkdir` `rm` `cat` `pwd` `touch` `rmdir` |\n| 2 | Persistent history & aliases | `history` `alias` `unalias` `aliases` |\n| 3 | Smart TAB autocomplete | commands, files, directories, aliases |\n| 4 | User accounts (SQLite) | `signup` `login` `logout` `whoami` |\n| 5 | Productivity suite | `todo` `note` `reminder` |\n| 6 | Developer tools | `uuid` `hash` `json pretty` `qr` `pip` |\n| 7 | Web shortcuts | `github` `linkedin` `leetcode` `gfg` `youtube` `google` `stackoverflow` `reddit` |\n| 8 | Plugin system | `install <plugin>` · auto-loads from `plugins/` |\n| 9 | AI integration | `ask` `summarize` `debug` · Groq / OpenAI / Ollama / mock |\n| 10 | Premium features | `theme` `portfolio` `sysinfo` · smart command suggestions |\n\n---\n\n## 📸 Screenshots\n\n### Startup Banner\n\n\n### Help Menu\n\n\n### AI — Ask Anything\n\n\n### AI — Summarize File\n\n\n### Hash Generator\n\n\n### Todo & Notes\n\n\n### Weather Plugin\n\n\n### Theme Switching\n\n\n---\n\n## 🚀 Quick Start\n\n```bash\n# 1. Clone\ngit clone https://github.com/AdwinTS/DevTerm.git\ncd DevTerm\n\n# 2. (Recommended) Virtual environment\npython -m venv .venv\n.venv\\Scripts\\activate # Windows\n# source .venv/bin/activate # macOS / Linux\n\n# 3. One-command setup\npython install.py\n\n# 4. Launch\npython -m devterm.main\n```\n\n---\n\n## 📦 Install as a global command\n\n```bash\npip install -e .\ndevterm # launch from anywhere\n```\n\n---\n\n## 🐳 Docker\n\n```bash\ndocker build -t devterm .\ndocker run -it devterm\n```\n\n---\n\n## 🎮 Command Reference\n\n### Shell\n```\npwd ls [path] cd <path>\nmkdir <dir> rmdir <dir> touch <file>\nrm <path> cat <file> clear exit\n```\n\n### History & Aliases\n```\nhistory [n] # show last N commands\nalias ll=ls # define alias (saved permanently)\nunalias ll # remove alias\naliases # list all aliases\n```\n\n> Built-in aliases on startup: `ll` → `ls`, `..` → `cd ..`, `~` → `cd ~`\n\n### User Accounts\n```\nsignup # create account (prompts for password)\nlogin # log in\nlogout # log out\nwhoami # show current user\n```\n\n> Every user gets their own history, todos, notes, reminders, and portfolio.\n\n### Productivity\n```\ntodo add \"Practice Heap\"\ntodo list\ntodo done 1\ntodo delete 1\n\nnote add \"Binary search uses O(log n)\"\nnote list\nnote delete 2\n\nreminder add \"Interview at 10am\"\nreminder list\n```\n\n### Developer Tools\n```\nuuid # random UUID v4\nhash hello # MD5, SHA1, SHA256, SHA512\njson pretty data.json # syntax-highlighted JSON\nqr https://github.com # save QR code as PNG\n\npip install \"qrcode[pil]\" # install packages without leaving DevTerm\npip install psutil\npip list\npip show rich\n```\n\n### Web Shortcuts\n```\ngithub torvalds\nlinkedin satyanadella\nleetcode neal_wu\ngfg admin\nyoutube python tutorial\ngoogle binary search\nstackoverflow heapq python\nreddit programming\n```\n\n### AI Tools\n```\nask explain binary search trees\nask who is the owner of this terminal\nsummarize notes.txt\ndebug main.py\n\naiconfig # show current AI config\naiconfig provider openai # set provider\naiconfig key gsk_xxxx # set API key (Groq / OpenAI)\naiconfig model llama-3.3-70b-versatile # set model\n```\n\n**Supported providers:**\n\n| Provider | Cost | Setup |\n|----------|------|-------|\n| `openai` + Groq base_url | **Free tier** | [console.groq.com](https://console.groq.com) |\n| `openai` | Pay-as-you-go | [platform.openai.com](https://platform.openai.com) |\n| `ollama` | **Free, local** | [ollama.com](https://ollama.com) |\n| `mock` | **Free, offline** | Default, no setup needed |\n\n**Recommended free setup (Groq):**\n```\naiconfig provider openai\naiconfig key gsk_your_groq_key\naiconfig model llama-3.3-70b-versatile\naiconfig url https://api.groq.com/openai/v1\n```\n\n### Weather Plugin\n```\nweather kochi\nweather \"New York\"\nweather London\n```\n\n> Uses wttr.in (primary) with Open-Meteo as fallback. No API key needed.\n\n### Premium\n```\ntheme list # show all themes\ntheme matrix # switch theme (dark / matrix / cyberpunk / default)\n\nportfolio # show your profile card (auto-filled from login)\nportfolio set github yourhandle # add GitHub\nportfolio set skills \"Python, Go\" # add skills\nportfolio set bio \"I build things\"\nportfolio set linkedin yourhandle\nportfolio set email you@example.com\n\nsysinfo # CPU, RAM, disk, battery, network\n```\n\n> Portfolio is per-user — login first and your username is pre-filled automatically.\n\n---\n\n## 🔌 Writing a Plugin\n\nDrop a `.py` file in `devterm/plugins/` — it auto-loads on next start.\n\n```python\n# devterm/plugins/myplugin.py\nfrom rich.console import Console\nconsole = Console()\n\ndef cmd_hello(args):\n name = args[0] if args else \"World\"\n console.print(f\"[bold cyan]Hello, {name}![/bold cyan]\")\n\ndef register(registry):\n registry.register(\n \"hello\",\n cmd_hello,\n description=\"Say hello\",\n usage=\"hello [name]\",\n )\n```\n\nLoad it in the running terminal without restarting:\n```\ninstall myplugin\n```\n\n---\n\n## 🗂️ Project Structure\n\n```\nDevTerm/\n├── devterm/\n│ ├── main.py # Entry point\n│ ├── terminal.py # REPL engine — wires all phases\n│ ├── core/\n│ │ ├── parser.py # shlex-based command parser\n│ │ ├── command_registry.py # Registry pattern dispatcher\n│ │ ├── history.py # Persistent history (JSON)\n│ │ ├── alias_manager.py # Persistent aliases (JSON)\n│ │ ├── user_manager.py # SQLite user accounts + password hashing\n│ │ └── plugin_loader.py # Dynamic plugin discovery\n│ ├── commands/\n│ │ ├── filesystem.py # Phase 1 — shell commands\n│ │ ├── productivity.py # Phase 5 — todo / note / reminder\n│ │ ├── developer.py # Phase 6+7 — uuid/hash/json/qr/pip + web shortcuts\n│ │ ├── ai_tools.py # Phase 9 — ask / summarize / debug\n│ │ └── premium.py # Phase 10 — themes / portfolio / sysinfo\n│ └── plugins/\n│ └── weather.py # Built-in weather plugin\n├── docs/\n│ └── screenshots/ # README screenshots\n├── data/\n│ ├── settings.json # Theme, AI config (gitignored)\n│ ├── settings.json.example # Safe template for new cloners\n│ └── aliases.json.example # Default aliases template\n├── database/ # SQLite DB (auto-created on first run)\n├── install.py # First-run setup script\n├── Dockerfile\n├── requirements.txt\n└── setup.py\n```\n\n---\n\n## ⚙️ AI Configuration\n\nEdit `data/settings.json` or use `aiconfig` commands inside DevTerm:\n\n**Groq (free, recommended):**\n```json\n{\n \"ai\": {\n \"provider\": \"openai\",\n \"api_key\": \"gsk_...\",\n \"model\": \"llama-3.3-70b-versatile\",\n \"base_url\": \"https://api.groq.com/openai/v1\"\n }\n}\n```\n\n**OpenAI:**\n```json\n{\n \"ai\": {\n \"provider\": \"openai\",\n \"api_key\": \"sk-...\",\n \"model\": \"gpt-4o-mini\",\n \"base_url\": null\n }\n}\n```\n\n**Ollama (free, local, no internet):**\n```json\n{\n \"ai\": {\n \"provider\": \"ollama\",\n \"model\": \"llama3\",\n \"base_url\": \"http://localhost:11434\"\n }\n}\n```\n\n---\n\n## 📋 Requirements\n\n**Core (auto-installed):**\n- `rich` — terminal UI\n- `prompt_toolkit` — TAB autocomplete & history\n- `requests` — weather, web calls\n\n**Optional (install as needed):**\n```bash\npip install psutil # sysinfo command\npip install \"qrcode[pil]\" # qr command\npip install openai # AI with Groq / OpenAI provider\n```\n\nOr install everything at once:\n```bash\npip install -e \".[all]\"\n```\n\n---\n\n## 📄 License\n\nMIT — free to use, modify, and distribute.\n\n---\n"}}}} |