[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-72211":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":31,"readmeContent":32,"aiSummary":33,"trendingCount":16,"starSnapshotCount":16,"syncStatus":34,"lastSyncTime":35,"discoverSource":36},72211,"toolong","Textualize\u002Ftoolong","Textualize","A terminal application to view, tail, merge, and search log files (plus JSONL).","https:\u002F\u002Fwww.textualize.io\u002F",null,"Python",3914,93,15,24,0,4,8,27.92,"MIT License",false,"main",true,[25,26,27,28,29,30],"jsonl","rich","terminal","terminal-based","textual","tui","2026-06-12 02:03:00","\n\u003Cp align=\"center\">\n    \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002FTextualize\u002Ftoolong\u002Fassets\u002F554369\u002F07f286c9-ac8d-44cd-905a-062a26060821\" alt=\"A Kookaburra sitting on a scroll\" width=\"300\" >\n\u003C\u002Fp>\n\n\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1026214085173461072)](https:\u002F\u002Fdiscord.gg\u002FEnf6Z3qhVr)\n\n# Toolong\n\nA terminal application to view, tail, merge, and search log files (plus JSONL).\n\n\u003Cdetails>  \n  \u003Csummary> 🎬 Viewing a single file \u003C\u002Fsummary>\n    \n&nbsp;\n\n\u003Cdiv align=\"center\">\n  \u003Cvideo src=\"https:\u002F\u002Fgithub.com\u002FTextualize\u002Ftailless\u002Fassets\u002F554369\u002Fa434d427-fa9a-44bf-bafb-1cfef32d65b9\" width=\"400\" \u002F>\n\u003C\u002Fdiv>\n\n\u003C\u002Fdetails>\n\n## Keep calm and log files\n\nSee [Toolong on Calmcode.io](https:\u002F\u002Fcalmcode.io\u002Fshorts\u002Ftoolong.py) for a calming introduction to Toolong.\n\n## What?\n\n\u003Cimg width=\"40%\" align=\"right\" alt=\"Screenshot 2024-02-08 at 13 47 28\" src=\"https:\u002F\u002Fgithub.com\u002FTextualize\u002Ftoolong\u002Fassets\u002F554369\u002F1595e8e0-f5bf-428b-9b84-f0b5c7f506a1\">\n\n\n- Live tailing of log files.\n- Syntax highlights common web server log formats.\n- As fast to open a multiple-gigabyte file as it is to open a tiny text file.\n- Support for JSONL files: lines are pretty printed.\n- Opens .bz and .bz2 files automatically.\n- Merges log files by auto detecting timestamps.\n  \n\n## Why?\n\nI spent a lot of time in my past life as a web developer working with logs, typically on web servers via ssh.\nI would use a variety of tools, but my goto method of analyzing logs was directly on the server with *nix tools like as `tail`, `less`, and `grep` etc.\nAs useful as these tools are, they are not without friction.\n\nI built `toolong` to be the tool I would have wanted back then.\nIt is snappy, straightforward to use, and does a lot of the *grunt work* for you.\n\n\n### Screenshots\n\n\u003Ctable>\n    \u003Ctr>\n        \u003Ctd>\n            \u003Cimg width=\"100%\" alt=\"Screenshot 2024-02-08 at 13 47 28\" src=\"https:\u002F\u002Fgithub.com\u002FTextualize\u002Ftoolong\u002Fassets\u002F554369\u002F1595e8e0-f5bf-428b-9b84-f0b5c7f506a1\">\n        \u003C\u002Ftd>\n        \u003Ctd>\n            \u003Cimg width=\"100%\" alt=\"Screenshot 2024-02-08 at 13 48 04\" src=\"https:\u002F\u002Fgithub.com\u002FTextualize\u002Ftoolong\u002Fassets\u002F554369\u002Fc95f0cf4-426d-4d25-b270-eec0f4cfc86f\">\n        \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>\n            \u003Cimg width=\"100%\" alt=\"Screenshot 2024-02-08 at 13 49 22\" src=\"https:\u002F\u002Fgithub.com\u002FTextualize\u002Ftoolong\u002Fassets\u002F554369\u002F45e7509c-ffed-44cc-b3e6-f2a7a276bbe5\">\n        \u003C\u002Ftd>\n        \u003Ctd>\n            \u003Cimg width=\"100%\" alt=\"Screenshot 2024-02-08 at 13 50 04\" src=\"https:\u002F\u002Fgithub.com\u002FTextualize\u002Ftoolong\u002Fassets\u002F554369\u002F6840b626-539f-4ef9-88d9-25e0b96036b7\">\n        \u003C\u002Ftd>\n    \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\n### Videos\n\n\u003Cdetails>  \n  \u003Csummary> 🎬 Merging multiple (compressed) files \u003C\u002Fsummary>\n&nbsp;\n\n\u003Cdiv align=\"center\">\n  \u003Cvideo src=\"https:\u002F\u002Fgithub.com\u002FTextualize\u002Ftailless\u002Fassets\u002F554369\u002Fefbbde11-bebf-44ff-8d2b-72a84b542b75\" \u002F>\n\u003C\u002Fdiv>\n    \n\n\u003C\u002Fdetails>\n\n\u003Cdetails>  \n  \u003Csummary> 🎬 Viewing JSONL files \u003C\u002Fsummary>\n&nbsp;\n\n\u003Cdiv align=\"center\">\n  \u003Cvideo src=\"https:\u002F\u002Fgithub.com\u002FTextualize\u002Ftailless\u002Fassets\u002F554369\u002F38936600-34ee-4fe1-9fd3-b1581fc3fa37\"  \u002F>\n\u003C\u002Fdiv>\n    \n    \n\n\u003C\u002Fdetails>\n\n\u003Cdetails>  \n  \u003Csummary> 🎬 Live Tailing a file \u003C\u002Fsummary>\n&nbsp;\n\n\u003Cdiv align=\"center\">\n  \u003Cvideo src=\"https:\u002F\u002Fgithub.com\u002FTextualize\u002Ftailless\u002Fassets\u002F554369\u002F7eea6a0e-b30d-4a94-bb45-c5bff0e329ca\" \u002F>\n\u003C\u002Fdiv>\n\n\n\u003C\u002Fdetails>\n\n## How?\n\nToolong is currently best installed with [pipx](https:\u002F\u002Fgithub.com\u002Fpypa\u002Fpipx).\n\n```bash\npipx install toolong\n```\n\nYou could also install Toolong with Pip:\n\n```bash\npip install toolong\n```\n\n> [!NOTE] \n> If you use pip, you should ideally create a virtual environment to avoid potential dependancy conflicts.\n\nHowever you install Toolong, the `tl` command will be added to your path:\n\n```bash\ntl\n```\n\nIn the near future there will be more install methods, and hopefully your favorite package manager.\n\n### Compatibility\n\nToolong works on Linux, macOS, and Windows.\n\n### Opening files\n\nTo open a file with Toolong, add the file name(s) as arguments to the command:\n\n```bash\ntl mylogfile.log\n```\n\nIf you add multiple filenames, they will open in tabs.\n\nAdd the `--merge` switch to open multiple files and combine them in to a single view:\n\n```bash\ntl access.log* --merge\n```\n\nIn the app, press **f1** for additional help.\n\n### Piping\n\nIn addition to specifying files, you can also pipe directly into `tl`.\nThis means that you can tail data that comes from another process, and not neccesarily a file.\nHere's an example of piping output from the `tree` command in to Toolong:\n\n```bash\ntree \u002F | tl\n```\n\n## Who?\n\nThis [guy](https:\u002F\u002Fgithub.com\u002Fwillmcgugan). An ex web developer who somehow makes a living writing terminal apps.\n\n    \n---\n\n## History\n\nIf you [follow me](https:\u002F\u002Ftwitter.com\u002Fwillmcgugan) on Twitter, you may have seen me refer to this app as *Tailless*, because it was intended to be a replacement for a `tail` + `less` combo.\nI settled on the name \"Toolong\" because it is a bit more apt, and still had the same initials.\n\n## Development\n\nToolong v1.0.0 has a solid feature set, which covers most of my requirements.\nHowever, there is a tonne of features which could be added to something like this, and I will likely implement some of them in the future.\n\nIf you want to talk about Toolong, find me on the [Textualize Discord Server](https:\u002F\u002Fdiscord.gg\u002FEnf6Z3qhVr).\n\n\n## Thanks\n\nI am grateful for the [LogMerger](https:\u002F\u002Fgithub.com\u002Fptmcg\u002Flogmerger) project which I referenced (and borrowed regexes from) when building Toolong.\n\n## Alternatives\n\nToolong is not the first TUI for working with log files. See [lnav](https:\u002F\u002Flnav.org\u002F) as a more mature alternative.\n","Toolong 是一个用于查看、跟踪、合并和搜索日志文件（包括 JSONL 格式）的终端应用程序。其核心功能包括实时跟踪日志文件、支持常见 Web 服务器日志格式的语法高亮、快速打开大文件、自动解压 .bz 和 .bz2 文件以及按时间戳自动合并日志文件。此外，它还能够对 JSONL 文件进行美化打印。该工具基于 Python 开发，使用了 Rich 库来增强终端输出效果，适合在需要高效处理和分析日志文件的各种场景下使用，如服务器运维、开发调试等。",2,"2026-06-11 03:40:51","high_star"]