{"_id":"@ajaymerchia/logui","name":"@ajaymerchia/logui","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@ajaymerchia/logui","version":"1.0.0","description":"Beautiful log tailing interface with real-time streaming","main":"dist/server/index.js","bin":{"logui":"bin/logui.js"},"engines":{"node":">=16.0.0"},"repository":{"type":"git","url":"git+https://github.com/ajaymerchia/log-ui.git"},"homepage":"https://github.com/ajaymerchia/log-ui","bugs":{"url":"https://github.com/ajaymerchia/log-ui/issues"},"scripts":{"dev":"node scripts/dev-with-browser.js","dev:concurrent":"concurrently --kill-others --kill-others-on-fail \"npm run dev:server\" \"npm run dev:client\"","dev:server":"nodemon --signal SIGTERM --exec ts-node src/server/index.ts","dev:client":"vite","build":"npm run build:client && npm run build:server","build:client":"vite build","build:server":"tsc --project tsconfig.server.json","start":"node dist/server/index.js","demo":"node bin/demo.js","generate-logs":"node generate-logs.js","prepublishOnly":"npm run validate && npm run build","validate":"npm run lint && npm run type-check","type-check":"tsc --noEmit","test-install":"node scripts/test-publish.js","version":"npm run validate && git add -A","lint":"eslint . --max-warnings 50","preview":"vite preview"},"keywords":["log","tail","monitoring","real-time","ui","observability"],"author":{"name":"Ajay Merchia"},"license":"MIT","publishConfig":{"access":"public"},"dependencies":{"chokidar":"^3.5.3","commander":"^11.1.0","express":"^4.18.2","highlight.js":"^11.11.1","open":"^9.1.0","socket.io":"^4.7.5"},"devDependencies":{"@emotion/react":"^11.14.0","@emotion/styled":"^11.14.1","@eslint/js":"^9.34.0","@mui/material":"^7.3.1","@types/express":"^4.17.21","@types/node":"^20.10.5","@types/react":"^18.2.45","@types/react-dom":"^18.2.18","@types/react-window":"^1.8.8","@typescript-eslint/eslint-plugin":"^6.15.0","@typescript-eslint/parser":"^6.15.0","@vitejs/plugin-react":"^4.2.1","autoprefixer":"^10.4.16","concurrently":"^8.2.2","eslint":"^8.57.1","eslint-plugin-react":"^7.37.5","eslint-plugin-react-hooks":"^4.6.0","eslint-plugin-react-refresh":"^0.4.5","framer-motion":"^10.16.16","globals":"^16.3.0","lucide-react":"^0.303.0","nodemon":"^3.0.2","postcss":"^8.4.32","react":"^18.2.0","react-dom":"^18.2.0","react-query":"^3.39.3","react-window":"^1.8.8","socket.io-client":"^4.7.5","tailwindcss":"^3.4.0","ts-node":"^10.9.2","typescript":"^5.3.3","typescript-eslint":"^8.40.0","vite":"^5.0.10","zustand":"^4.4.7"},"_id":"@ajaymerchia/logui@1.0.0","gitHead":"3ba9b746a612afa27e79e87a30f68f77367a8aa5","types":"./dist/server/index.d.ts","_nodeVersion":"23.11.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-KitdiLQqPMIQbddSnDOkRazw8trsI+E8VgW6c2pXTccH4DktY7lmx/9QpinaYPWgvoi/Cux8ln5sYGohtxuYOQ==","shasum":"9d36c9c4912cdf3c76b7be2552a62194e6910260","tarball":"https://registry.npmjs.org/@ajaymerchia/logui/-/logui-1.0.0.tgz","fileCount":23,"unpackedSize":508121,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD7r/K5ZxLI/NKYWQ5cJMrK9V9YoibcAzCmG03rm4Xb8wIgY5CV6b4CevuCBo95OU2b1aufh6ELPaH/m9MMV4BaG2w="}]},"_npmUser":{"name":"ajaymerchia","email":"ajaymerchia@gmail.com"},"directories":{},"maintainers":[{"name":"ajaymerchia","email":"ajaymerchia@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/logui_1.0.0_1756108892500_0.06662467245755299"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-25T08:01:32.410Z","1.0.0":"2025-08-25T08:01:32.727Z","modified":"2025-08-25T08:01:32.982Z"},"maintainers":[{"name":"ajaymerchia","email":"ajaymerchia@gmail.com"}],"description":"Beautiful log tailing interface with real-time streaming","homepage":"https://github.com/ajaymerchia/log-ui","keywords":["log","tail","monitoring","real-time","ui","observability"],"repository":{"type":"git","url":"git+https://github.com/ajaymerchia/log-ui.git"},"author":{"name":"Ajay Merchia"},"bugs":{"url":"https://github.com/ajaymerchia/log-ui/issues"},"license":"MIT","readme":"# LogUI 📊\n\nBeautiful, real-time log tailing interface inspired by Linear and Stripe's design aesthetic.\n\n![LogUI Preview](https://via.placeholder.com/800x500/0D1117/5E6AD2?text=LogUI+Preview)\n\n## ✨ Features\n\n- **🎨 Beautiful Interface** - Clean, modern design with smooth animations\n- **⚡ Real-time Streaming** - WebSocket-based live log tailing\n- **🔍 Smart Filtering** - Filter by log levels, tags, time ranges, and search\n- **📈 Timeline View** - Visual timeline with log density indicators\n- **🏷️ Tag Support** - Automatic extraction of `[tag]` patterns\n- **📱 Responsive Design** - Works on desktop and mobile\n- **🎯 Log Level Highlighting** - Color-coded ERROR, WARN, INFO, DEBUG levels\n- **⌨️ Keyboard Shortcuts** - Command palette (⌘K) and quick actions\n- **🔄 Auto-scroll** - Toggle automatic scrolling for new logs\n- **💾 Local First** - No external dependencies, runs entirely locally\n\n## 🚀 Quick Start\n\n```bash\n# Install globally with npm\nnpm install -g log-ui\n\n# Tail any log file\nlogui /path/to/your/logfile.log\n\n# Try the demo with generated logs\nlogui --demo\n\n# Or try specific demo types\nlogui --demo bigfile        # Large file performance test\nlogui --demo stack-traces   # Error logs with stack traces  \nlogui --demo livestream     # Real-time streaming logs\nlogui --demo corrupted      # Edge cases and malformed logs\n```\n\n## 🎬 Demo Options\n\nLogUI includes several demo modes to showcase different log scenarios:\n\n```bash\n# Basic demo with typical application logs\nlogui --demo basic\n\n# Large file performance test (10MB+ of logs)\nlogui --demo bigfile\n\n# Stack traces and multiline error logs  \nlogui --demo stack-traces\n\n# Real-time streaming logs (generates continuously)\nlogui --demo livestream\n\n# Corrupted/malformed logs and edge cases\nlogui --demo corrupted\n```\n\nYou can also generate sample logs without starting the server:\n\n```bash\n# Generate logs for testing\nlogui --generate bigfile\nlogui --generate stack-traces\nlogui --generate livestream\n```\n\n## 🛠️ Development\n\nFor local development:\n\n```bash\n# Clone the repository  \ngit clone https://github.com/ajaymerchia/log-ui.git\ncd log-ui\nnpm install\n\n# Start development server\nnpm run dev\n\n# Build for production\nnpm run build\n```\n\n## 📋 Log Format Support\n\nLogUI automatically detects and parses various log formats:\n\n- **Plain text logs** with automatic level detection\n- **JSON logs** with structured field extraction\n- **Timestamped logs** (ISO 8601, syslog, custom formats)\n- **Tagged logs** with `[SERVICE]` or `[COMPONENT]` patterns\n\n### Example Log Formats\n\n```bash\n# Plain text with timestamp and level\n2023-12-15T15:24:31.542Z [ERROR] [API] Database connection failed\n\n# JSON structured logs\n{\"timestamp\":\"2023-12-15T15:24:31.542Z\",\"level\":\"ERROR\",\"service\":\"API\",\"message\":\"Database timeout\"}\n\n# Syslog format\nDec 15 15:24:31 server01 nginx[1234]: [error] connection refused\n```\n\n## ⌨️ Keyboard Shortcuts\n\n- `⌘K` / `Ctrl+K` - Open command palette\n- `Space` - Pause/Resume log streaming\n- `Escape` - Clear current selection/filters\n- `↑/↓` - Navigate through log entries\n- `⌘F` / `Ctrl+F` - Focus search bar\n\n## 🎨 Customization\n\nLogUI uses a beautiful dark theme by default, inspired by Linear and Stripe:\n\n- **Primary**: `#5E6AD2` (Purple-blue)\n- **Success**: `#00D26A` (Green)\n- **Warning**: `#FF991F` (Orange)\n- **Error**: `#F5455C` (Red)\n\n## 📦 API\n\n### CLI Options\n\n```bash\nlogui [file] [options]\n\nOptions:\n  -p, --port <port>              Server port (default: 3001)\n  --no-open                      Don't open browser automatically\n  --demo [type]                  Run demo mode (basic|bigfile|stack-traces|corrupted|livestream)\n  --generate <type>              Generate sample logs (basic|bigfile|stack-traces|corrupted|livestream)\n  --tail <file>                  Tail a specific log file\n  -h, --help                     Display help information\n  -V, --version                  Display version number\n\nExamples:\n  logui app.log                  # Tail app.log\n  logui --demo                   # Run basic demo\n  logui --demo livestream        # Live streaming demo\n  logui --generate bigfile       # Generate 10MB test file\n  logui --port 8080 app.log      # Use custom port\n```\n\n## 🔧 Technical Stack\n\n- **Frontend**: React 18, TypeScript, Tailwind CSS, Framer Motion\n- **Backend**: Node.js, Express, Socket.IO\n- **Build**: Vite, TypeScript compiler\n- **State**: Zustand for client state management\n- **File Watching**: Chokidar for cross-platform file monitoring\n\n## 📄 License\n\nMIT License - see [LICENSE](LICENSE) for details.\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request","readmeFilename":"README.md","_rev":"1-0c14dbfcf66c9926013764b98e09342f"}