{"id":27075871,"url":"https://github.com/ryos-io/tars","last_synced_at":"2025-12-12T01:34:53.866Z","repository":{"id":19069956,"uuid":"22296947","full_name":"ryos-io/Tars","owner":"ryos-io","description":"TARS is a framework for building command-line applications in Clojure","archived":false,"fork":false,"pushed_at":"2020-11-23T17:38:25.000Z","size":138,"stargazers_count":2,"open_issues_count":7,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-18T01:41:12.302Z","etag":null,"topics":["cli","clojure","console","console-application"],"latest_commit_sha":null,"homepage":"http://ryos.io","language":"Clojure","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/ryos-io.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}},"created_at":"2014-07-26T21:36:35.000Z","updated_at":"2020-11-23T17:38:27.000Z","dependencies_parsed_at":"2022-09-26T22:10:16.985Z","dependency_job_id":null,"html_url":"https://github.com/ryos-io/Tars","commit_stats":null,"previous_names":["mooito/moo"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryos-io%2FTars","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryos-io%2FTars/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryos-io%2FTars/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryos-io%2FTars/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ryos-io","download_url":"https://codeload.github.com/ryos-io/Tars/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247416393,"owners_count":20935460,"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":["cli","clojure","console","console-application"],"created_at":"2025-04-06T00:18:16.108Z","updated_at":"2025-12-12T01:34:53.802Z","avatar_url":"https://github.com/ryos-io.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"TARS\n===\n\n\u003cimg src=\"https://travis-ci.org/mooito/TARS.svg\" /\u003e [![API Documentation](http://b.repl.ca/v1/doc-API-blue.png)](http://www.ryos.io/tars/doc/)\n\u003cimg src=\"https://img.shields.io/packagist/l/doctrine/orm.svg\"/\u003e\n[![GitHub version](https://badge.fury.io/gh/mooito%2FTARS.svg)](https://badge.fury.io/gh/mooito%2FTARS)\n[![Clojars Project](https://img.shields.io/clojars/v/io.ryos/tars.svg)](https://clojars.org/io.ryos/tars)\n\nTARS is a Clojure framework, that provides a command-line interface for your applications and allows your users to interact through it (like mongo, mysql clients). TARS already understands a few commands like \"help\" and \"quit\". You only need to extend it to make TARS understand your custom commands specific to your clients.\n\n+ [API Doc](http://www.ryos.io/tars/doc/)\n+ [GitHub Issues](https://github.com/ryos-io/tars/issues)\n\n\nHow to use\n---\n\nTo add the CLI into your application just add the dependency and the define the main function.\n\n```\n(defproject your-app \"0.1.0-SNAPSHOT\"\n  :dependencies [[org.clojure/clojure \"1.5.1\"]\n                 [io.ryos/tars \"0.1.5\"]]\n  :main io.ryos.tars.container)\n```\n\nAfter you run your application by calling:\n```\nlein run\n```\nthe CLI will be available for user interaction with a default MOTD and prompt. You can override this settings and customize them in your applications.\n\n```\n        .\n       _|_\n/\\/\\  (. .)\n`||'   |#|\n ||__.-\"-\"-.___\n `---| . . |--.\\     TARS version 0.1.0 [ Type 'help' to get help! ]\n     | : : |  |_|    https://github.com/ryos-io/tars\n     `..-..' ( I )\n      || ||   | |\n      || ||   |_|\n     |__|__|  (.)\ntars\u003e\n```\nOut of the box, TARS provide two commands, that are \"help\" and \"quit\". You can now extend the TARS to understand your commands.\n\n\nHow to customize\n---\n\nYou can override the MOTD by creating a new branding file under \"~/.tars/branding\" and also the prompt by adding a configuration file in \"~/.tars/config.clj\". The configuration file will be loaded while the CLI starts. To override the prompt settings, just add a new definition for the prompt:\n\n```\n(def config {:prompt \"tars\"})\n```\nHow to extend\n---\nTo add your own commands you can use the TARS DSL:\n\n```\n(ns test-prj.core\n  (:gen-class)\n  (:require [io.ryos.tars.container :as c])\n  (:use io.ryos.tars.dsl))\n\n;; add a new command called \"test\"\n(add-command \"test\"\n (on-start (println \"starting\"))\n (on-exec  (println \"exec\"))\n (on-complete (println \"complete\"))\n (on-error (println \"error\"))\n (with-doc \"Command Description\"))\n\n(defn -main [ \u0026 args ]\n    (c/start-repl))\n```\n\n## Bugs and Feedback\n\nFor bugs, questions and discussions please use the [Github Issues](https://github.com/ryos-io/tars/issues).\n\n \n## LICENSE\n\nCopyright 2015 Erhan Bagdemir under MIT License.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryos-io%2Ftars","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fryos-io%2Ftars","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryos-io%2Ftars/lists"}