{"id":25530819,"url":"https://github.com/jkbkupczyk/shell-go","last_synced_at":"2026-02-12T01:35:47.427Z","repository":{"id":275492952,"uuid":"926237179","full_name":"jkbkupczyk/shell-go","owner":"jkbkupczyk","description":"A minimal POSIX-compliant shell implemented in Go.","archived":false,"fork":false,"pushed_at":"2025-02-12T21:41:15.000Z","size":34,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-12T22:32:06.414Z","etag":null,"topics":["codecrafters","codecrafters-shell","golang","shell"],"latest_commit_sha":null,"homepage":"https://app.codecrafters.io/courses/shell/overview","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jkbkupczyk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2025-02-02T21:30:29.000Z","updated_at":"2025-02-12T21:41:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"4f9d51ff-e41f-4242-a27d-65e434f1663a","html_url":"https://github.com/jkbkupczyk/shell-go","commit_stats":null,"previous_names":["jkbkupczyk/shell-go"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jkbkupczyk%2Fshell-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jkbkupczyk%2Fshell-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jkbkupczyk%2Fshell-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jkbkupczyk%2Fshell-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jkbkupczyk","download_url":"https://codeload.github.com/jkbkupczyk/shell-go/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239753941,"owners_count":19691210,"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":["codecrafters","codecrafters-shell","golang","shell"],"created_at":"2025-02-20T00:22:09.252Z","updated_at":"2026-01-16T00:30:15.185Z","avatar_url":"https://github.com/jkbkupczyk.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# shell-go\n\nA minimal POSIX compliant shell, implemented in Go, that's capable of interpreting \nshell commands, running external programs and builtin commands like:\necho, type, pwd, cd and more. Includes stdout and stderr redirection and autocompletion.\n\n**Note**: This project is a part of [\"Build Your Own Shell\"](https://app.codecrafters.io/courses/shell/overview) from [codecrafters.io](https://codecrafters.io).\n\n## Features\n\n- REPL\n- running builtin commands [exit, echo, type, pwd, cd]\n- running external program with arguments\n- support for non quoted, single quoted, double quoted arguments\n- stdout and stder redirection\n- stdout and stderr appending\n- autocompletion\n- signal handling (`Ctrl+C`, `Ctl+D`)\n\n## Installation\n\nBefore you do any of the steps below, make sure you have [Golang](https://go.dev) installed.\n\n1.  Clone the repo\n    ```sh\n    git clone https://github.com/jkbkupczyk/shell-go.git\n    ```\n2.  Build and run\n    ```sh\n    go build -o bin/myshell ./cmd/myshell/.\n    ./bin/myshell\n    ```\n3.  Run tests (optional!)\n    ```sh\n    go test -v -timeout 30s ./...\n    ```\n\nYou can also use [Make](https://www.gnu.org/software/make) commands: `run` - for building and running application and `test` for running tests - see [Makefile](Makefile).\n\n\n## Roadmap / TODOs\n\n- more tests\n- refactors, fixes\n- piping\n- history\n- variable interpolation\n- job control\n- new functionalities (reference [Bash Reference Manual](https://www.gnu.org/software/bash/manual/bash.html))\n\n## Contributing\n\nFeel free to create issues or submit pull requests!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjkbkupczyk%2Fshell-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjkbkupczyk%2Fshell-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjkbkupczyk%2Fshell-go/lists"}