{"id":24541538,"url":"https://github.com/yuhonas/zsh-ansimotd","last_synced_at":"2025-10-03T17:31:03.205Z","repository":{"id":150152604,"uuid":"430243017","full_name":"yuhonas/zsh-ansimotd","owner":"yuhonas","description":"a zsh-plugin to display old skool ansi \u0026 ascii bbs art on logon","archived":false,"fork":false,"pushed_at":"2023-05-03T19:06:03.000Z","size":48,"stargazers_count":53,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-05-28T23:28:54.172Z","etag":null,"topics":["art","ascii-art","bbs","oldschool","ricing","shell","zsh","zsh-plugin"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yuhonas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2021-11-21T00:53:55.000Z","updated_at":"2024-05-22T19:18:11.000Z","dependencies_parsed_at":"2024-01-03T04:15:45.803Z","dependency_job_id":"2252f062-1567-4e07-891f-add75fdee829","html_url":"https://github.com/yuhonas/zsh-ansimotd","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuhonas%2Fzsh-ansimotd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuhonas%2Fzsh-ansimotd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuhonas%2Fzsh-ansimotd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuhonas%2Fzsh-ansimotd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yuhonas","download_url":"https://codeload.github.com/yuhonas/zsh-ansimotd/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235161540,"owners_count":18945540,"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":["art","ascii-art","bbs","oldschool","ricing","shell","zsh","zsh-plugin"],"created_at":"2025-01-22T18:17:56.770Z","updated_at":"2025-10-03T17:31:02.885Z","avatar_url":"https://github.com/yuhonas.png","language":"Shell","funding_links":[],"categories":["Plugins","Shell"],"sub_categories":["ZSH on Windows"],"readme":"# zsh ansi motd (message of the day) [![Lint for errors](https://github.com/yuhonas/zsh-ansimotd/actions/workflows/ci.yml/badge.svg)](https://github.com/yuhonas/zsh-ansimotd/actions/workflows/ci.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n\n\nThis zsh plugin adds an old skool ansi art based motd when the login shell is executed\n\n![Example MOTD](./example.png)\n\n## Why\n\nI grew up in the day's of [ BBS's ](https://en.wikipedia.org/wiki/Bulletin_board_system) and [ ansi art ](https://en.wikipedia.org/wiki/ANSI_art) so I wanted something\nto replicate the experience of jumping onto a new [ BBS ](https://en.wikipedia.org/wiki/Bulletin_board_system) everytime I started my login shell\n\n## Installation\n\n### Dependencies\n\n* [zsh](https://www.zsh.org/)\n* [shuf]( https://en.wikipedia.org/wiki/Shuf) which is part of gnu [coreutils](https://formulae.brew.sh/formula/coreutils)\n\nFor Mac/Linux using [ Homebrew ](https://brew.sh/) you can install coreutils using\n\n```\nbrew install coreutils\n```\n\n#### Optional\n* [fd](https://github.com/sharkdp/fd) a modern `find` replacement, it will use this preferentially if it's installed otherwise fallback to `find`\n* [pv](https://www.ivarch.com/programs/pv.shtml) a pipe viewer which can limit the art rendering speed to [emulate the feel of an old skool BBS](https://github.com/yuhonas/zsh-ansimotd#the-real-bbs-experience)\n\n### Install using your favourite plugin manager or not\n\n```\n# for znap\nznap source yuhonas/zsh-ansimotd\n\n# for antigen\nantigen bundle yuhonas/zsh-ansimotd\n\n# for zplug\nzplug \"yuhonas/zsh-ansimotd\"\n\n# manually\n# Clone the repository and source it in your shell's rc file\n```\n\n### Getting some awesome ansi art to display\n\nAfter installation you'll need to download some ansi art for it to randomly display, I suggest a few places\n\n#### 16colo.rs\n\nHead over to [16colo.rs](https://16colo.rs/) and if you find a year(s) you like you can download everything from that year using their rsync mirror\n\neg. to download everything from [1996](https://16colo.rs/year/1996/) to the `ANSI_MOTD_ART_DIR`\n```\nrsync -azvhP --include '*/' --include '*.ANS' --exclude '*' rsync://16colo.rs/pack/1996 \"$ANSI_MOTD_ART_DIR\"\n```\n\n#### artscene.textfiles.com\n\nFind a pack you like at [artscene](http://artscene.textfiles.com/artpacks/) and unpack it into the ansi motd config directory\n\nYou can do this by\n\n##### Using the plugins helper function\nUse [ansi_art_download](https://github.com/yuhonas/zsh-ansimotd/blob/main/zsh-ansimotd.plugin.zsh#L15) to download all zip files of ansi art from a url and unpack them into the ansi motd config directory (this can take a while depending on the amount of ansi art contained in that year)\n\neg. to download all ansi art from `1996` from the url http://artscene.textfiles.com/artpacks/1996/ run the following in your shell\n\n```\nansi_art_download http://artscene.textfiles.com/artpacks/1996/\n```\n\n#### Manually\n\nCopy any `.ans`, `.img` or `.asc` files containg ansi art into your `ANSI_MOTD_ART_DIR` directory which is derived from `${XDG_CONFIG_HOME:-$HOME/.config}/ansimotd` (the plugin performs a recursive search for art so any directory nesting is fine)\n\n### Configuration / Settings\n\nThe plugin exports the following useful variables to the session\n\n* `ANSI_MOTD_ART_DIR`  - the full path to the config directory where the plugin will search for ansi art\n* `ANSI_MOTD_FILENAME` - the full file path to the last shown peice of ansi art, if you want to do something with it, laud over it, delete it etc\n\nThere's also a handful of ENV variables you can use to configure the plugin (these will need to be set prior to plugin instantiation)\n\n#### The real BBS experience\n\nTo buffer the ansi art output at a fixed speed you can set the `ANSI_MOTD_RATE_LIMIT_OUTPUT` ENV variable\n\neg. to limit the ansi art rendering rate to a data rate of 8k\n```\nexport ANSI_MOTD_RATE_LIMIT_OUTPUT=\"8k\"\n```\n\nSee also [Pull Request #10](https://github.com/yuhonas/zsh-ansimotd/pull/10#pullrequestreview-1407110513) to see it in action\n\n#### Small screens\nIf you happen to be running on a small fixed screen perhaps on something like [termux](https://termux.dev/en/) you can set the following ENV variable to truncate the art to screen width\n\n```\nexport ANSI_MOTD_DISABLE_LINE_WRAPPING=1\n```\n\nSee also [Pull Request #6](https://github.com/yuhonas/zsh-ansimotd/pull/6)\n\n\n### Note\nArt to be displayed is assumed to use the [Code Page 437]( https://en.wikipedia.org/wiki/Code_page_437 ) character set\n\n\n### License\n\nThis project is licensed under the [ MIT ](./LICENSE) license\n\n### Contributors\n\n\u003ca href=\"https://github.com/yuhonas/zsh-ansimotd/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=yuhonas/zsh-ansimotd\" /\u003e\n\u003c/a\u003e\n\nMade with [contrib.rocks](https://contrib.rocks).\n\n### Special Thanks 🙇\n\n* To [romkatv](https://www.reddit.com/r/zsh/comments/12ueb6b/comment/jhmlgez/?utm_source=share\u0026utm_medium=web2x\u0026context=3) for posting a fix for the word wrapping issue on narrow terminals\n* To [mainsm](https://github.com/yuhonas/zsh-ansimotd/issues/5#issue-1683181011) for posting 👆 as an issue in the repo\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyuhonas%2Fzsh-ansimotd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyuhonas%2Fzsh-ansimotd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyuhonas%2Fzsh-ansimotd/lists"}