{"id":26053348,"url":"https://github.com/notnekodev/jash","last_synced_at":"2026-03-02T13:40:54.465Z","repository":{"id":281240727,"uuid":"944652925","full_name":"NotNekodev/jash","owner":"NotNekodev","description":"Just another Shell. Written completly in C","archived":false,"fork":false,"pushed_at":"2025-03-08T13:59:38.000Z","size":60,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"trunk","last_synced_at":"2025-09-06T14:50:50.154Z","etag":null,"topics":["c","console","make","shell"],"latest_commit_sha":null,"homepage":"https://volartrix.xyz","language":"C","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/NotNekodev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["NotNekodev"]}},"created_at":"2025-03-07T18:17:37.000Z","updated_at":"2025-08-26T14:16:11.000Z","dependencies_parsed_at":"2025-03-07T19:42:51.432Z","dependency_job_id":null,"html_url":"https://github.com/NotNekodev/jash","commit_stats":null,"previous_names":["notnekodev/jash"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/NotNekodev/jash","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NotNekodev%2Fjash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NotNekodev%2Fjash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NotNekodev%2Fjash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NotNekodev%2Fjash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NotNekodev","download_url":"https://codeload.github.com/NotNekodev/jash/tar.gz/refs/heads/trunk","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NotNekodev%2Fjash/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274920185,"owners_count":25373973,"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","status":"online","status_checked_at":"2025-09-13T02:00:10.085Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["c","console","make","shell"],"created_at":"2025-03-08T07:28:06.088Z","updated_at":"2026-03-02T13:40:54.416Z","avatar_url":"https://github.com/NotNekodev.png","language":"C","funding_links":["https://github.com/sponsors/NotNekodev"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# Jash\n\n**Just Another SHell - A lightweight, customizable Unix shell**\n\n![GitHub License](https://img.shields.io/github/license/notnekodev/jash?style=flat-square)\n![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/NotNekodev/jash/build.yml?branch=trunk\u0026style=flat-square\u0026logo=githubactions)\n![GitHub last commit](https://img.shields.io/github/last-commit/notnekodev/jash?style=flat-square\u0026logo=github)\n![GitHub commit activity](https://img.shields.io/github/commit-activity/t/notnekodev/jash?style=flat-square\u0026logo=git)\n![GitHub Sponsors](https://img.shields.io/github/sponsors/notnekodev?style=flat-square\u0026color=violet)\n\n\n\u003c/div\u003e\n\nJash is a modern Unix shell designed for simplicity, performance and extensibility. It provides a familiar command-line interface while maintaining minimal dependencies and a small footprint.\n\n## Table of Contents\n\n- [Overview](#overview)\n- [System Requirements](#system-requirements)\n- [Installation](#installation)\n  - [Building from Source](#building-from-source)\n  - [Setting as Default Shell](#setting-as-default-shell)\n- [Features](#features)\n- [Configuration](#configuration)\n- [Development](#development)\n- [License](#license)\n\n## Overview\n\nJash (Just Another SHell) provides the essential functionality of Unix shells like Bash or Zsh while maintaining a clean, efficient codebase. It features command history, customizable prompts, and standard path resolution while using minimal dependencies.\n\n## System Requirements\n\n### Operating System Compatibility\n\n| Operating System | Status |\n|:----------------:|:------:|\n| Linux            | ✅     |\n| WSL2             | ✅     |\n| Unix             | ⚠️     |\n| macOS            | ⚠️     |\n| Windows          | ❌     |\n\n✅ Fully supported and tested  \n⚠️ Should work but not extensively tested  \n❌ Not supported\n\n### Dependencies\n\n- `libreadline-dev` - For input handling and command history functionality\n- C compiler (`clang` or `gcc`) - For building the project\n- `git` - For cloning the repository (optional)\n\n## Installation\n\n### Building from Source\n\n1. Install required dependencies:\n\n```sh\n# Debian/Ubuntu\nsudo apt install libreadline-dev clang git\n   \n# Fedora/RHEL\nsudo dnf install readline-devel clang git\n   \n# Arch Linux\nsudo pacman -S readline clang git\n```\n\n2. Clone the repository:\n```sh\ngit clone --depth 1 https://github.com/NotNekodev/jash.git\ncd jash\n```\n\n3. Build and install\n```sh\nmake\nsudo make install\n```\n\nThis compiles Jash and installs it to `/usr/bin/jash`. The installation also adds Jash to you `/etc/shells` file.\n\n### Setting as Default Shell\n\nTo set Jash as your default login shell:\n```sh\nchsh -s /usr/bin/jash\n```\n\nLog out and log back in for the changes to take effect.\n\n## Features\n- Clean, minimal interface\n- Command history with persistence\n- Standard  path resolution\n- Configurable via INI file\n- Extensible command completion\n\n## Configuration\nJash can be configured by creating or editing the .`jashconf.ini`file in your home directory.\n\n### Available Configuration Options\n\n`[Core]` **section**\n\n- `Prompt`: Customizes the shell prompt with the following placeholders:\n    - `$$DIR$$`: Current working directory\n    - `$$USER$$`: Current username\n    - `$$HOST$$`: Current hostname\n\n- `HistorySize`: The size of the command history before looping\n- `HistoryFile`: Where to store the command history. (Don't use '~')\n- `DefaultDirectory`: The default directory thats open when you launch the shell\n- `MaxCommandSize`: The maximum size for a command\n- `StartupScript`: The script to run on startup\n\n`[Cursor]` **section**\n\n- `Style`: The cursor style. There are 4 possible options:\n  - `block`: Block Cursor, the default one\n  - `underline`: Underline Cursor\n  - `bar`: A simple bar cursor\n  - `custom`: uses the `CustomSequence` below to \"print\" the cursor configuration\n- `BlinkEnables`: When enabled the cursor will blink. Otherwise not\n- `CustomSequence`: What to print when the cursor configuration is `custom` (experts only)\n\n`[Completion]` **section**\n\n- `Enable`: If set it will enable tab completion\n- `CacheTTL`: Time to live of the command cache in seconds\n\n`[Commands]` **section**\n- `XpgEcho`: Enables bash like xpg_echo / Posixly correct echo\n- `UseBuiltinEcho`: If set it will not use the `echo` binary but a custom variant\n\n### Example Configuration\nThis configuration also represents the standart configuration if the file cannot be loaded\n\n```ini\n; Prompt variables:\n;  - $$USER$$ - current user name\n;  - $$HOST$$ - current host name\n;  - $$DIR$$ - current directory\n\n[Core]\nPrompt=$$USER$$@$$HOST$$:$$DIR$$$\nHistorySize=2048\nHistoryFile=/home/neko/.jash_history\nDefaultDirectory=~\nMaxCommandSize=1024\nStartupScript=~/.jashrc\n\n[Cursor]\n; Cursor style: block, underline, bar, custom\nStyle=block\nBlinkEnabled=true\n\n; Custom cursor settings (used when Style=custom)\nCustomSequence=\\033[3 q\n\n[Completion]\nEnable=true\nCacheTTL=3600\n\n[Commands]\nUseBuiltinEcho=true\nXpgEcho=false\n```\n\n\n## Development\n\nJash is structured with a clean separation between core functionality components:\n\n- Input handling with readline integration\n- Command execution and process management\n- Configuration parsing with INI format\n- Command history management\n\nTo contribute to Jash, please fork the repository and submit pull requests with your changes.\n\n## License\nJash is licensed under the MIT License. See [LICENSE](LICENSE) for details.\n\nCopyright © 2025 NotNekodev","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnotnekodev%2Fjash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnotnekodev%2Fjash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnotnekodev%2Fjash/lists"}