├── .editorconfig
├── .gitattributes
├── .github
├── FUNDING.yml
└── workflows
│ └── lint.yml
├── .gitignore
├── LICENSE
├── README.md
├── awesome-textualize.png
├── code-of-conduct.md
└── contributing.md
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | end_of_line = lf
6 | indent_style = space
7 | trim_trailing_whitespace = true
8 | insert_final_newline = true
9 |
10 | # Rules for markdown documents.
11 | [*.md]
12 | trim_trailing_whitespace = false
13 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto eol=lf
2 | readme.md merge=union
3 |
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: [oleksis]
4 |
--------------------------------------------------------------------------------
/.github/workflows/lint.yml:
--------------------------------------------------------------------------------
1 | name: Lint Awesome List
2 | on: [push, pull_request]
3 | jobs:
4 | lint:
5 | name: Lint
6 | runs-on: ubuntu-latest
7 | steps:
8 | - uses: actions/checkout@v2
9 | with:
10 | fetch-depth: 0
11 | - run: npx awesome-lint
12 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .obsidian
2 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | CC0 1.0 Universal
2 |
3 | Statement of Purpose
4 |
5 | The laws of most jurisdictions throughout the world automatically confer
6 | exclusive Copyright and Related Rights (defined below) upon the creator and
7 | subsequent owner(s) (each and all, an "owner") of an original work of
8 | authorship and/or a database (each, a "Work").
9 |
10 | Certain owners wish to permanently relinquish those rights to a Work for the
11 | purpose of contributing to a commons of creative, cultural and scientific
12 | works ("Commons") that the public can reliably and without fear of later
13 | claims of infringement build upon, modify, incorporate in other works, reuse
14 | and redistribute as freely as possible in any form whatsoever and for any
15 | purposes, including without limitation commercial purposes. These owners may
16 | contribute to the Commons to promote the ideal of a free culture and the
17 | further production of creative, cultural and scientific works, or to gain
18 | reputation or greater distribution for their Work in part through the use and
19 | efforts of others.
20 |
21 | For these and/or other purposes and motivations, and without any expectation
22 | of additional consideration or compensation, the person associating CC0 with a
23 | Work (the "Affirmer"), to the extent that he or she is an owner of Copyright
24 | and Related Rights in the Work, voluntarily elects to apply CC0 to the Work
25 | and publicly distribute the Work under its terms, with knowledge of his or her
26 | Copyright and Related Rights in the Work and the meaning and intended legal
27 | effect of CC0 on those rights.
28 |
29 | 1. Copyright and Related Rights. A Work made available under CC0 may be
30 | protected by copyright and related or neighboring rights ("Copyright and
31 | Related Rights"). Copyright and Related Rights include, but are not limited
32 | to, the following:
33 |
34 | i. the right to reproduce, adapt, distribute, perform, display, communicate,
35 | and translate a Work;
36 |
37 | ii. moral rights retained by the original author(s) and/or performer(s);
38 |
39 | iii. publicity and privacy rights pertaining to a person's image or likeness
40 | depicted in a Work;
41 |
42 | iv. rights protecting against unfair competition in regards to a Work,
43 | subject to the limitations in paragraph 4(a), below;
44 |
45 | v. rights protecting the extraction, dissemination, use and reuse of data in
46 | a Work;
47 |
48 | vi. database rights (such as those arising under Directive 96/9/EC of the
49 | European Parliament and of the Council of 11 March 1996 on the legal
50 | protection of databases, and under any national implementation thereof,
51 | including any amended or successor version of such directive); and
52 |
53 | vii. other similar, equivalent or corresponding rights throughout the world
54 | based on applicable law or treaty, and any national implementations thereof.
55 |
56 | 2. Waiver. To the greatest extent permitted by, but not in contravention of,
57 | applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and
58 | unconditionally waives, abandons, and surrenders all of Affirmer's Copyright
59 | and Related Rights and associated claims and causes of action, whether now
60 | known or unknown (including existing as well as future claims and causes of
61 | action), in the Work (i) in all territories worldwide, (ii) for the maximum
62 | duration provided by applicable law or treaty (including future time
63 | extensions), (iii) in any current or future medium and for any number of
64 | copies, and (iv) for any purpose whatsoever, including without limitation
65 | commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes
66 | the Waiver for the benefit of each member of the public at large and to the
67 | detriment of Affirmer's heirs and successors, fully intending that such Waiver
68 | shall not be subject to revocation, rescission, cancellation, termination, or
69 | any other legal or equitable action to disrupt the quiet enjoyment of the Work
70 | by the public as contemplated by Affirmer's express Statement of Purpose.
71 |
72 | 3. Public License Fallback. Should any part of the Waiver for any reason be
73 | judged legally invalid or ineffective under applicable law, then the Waiver
74 | shall be preserved to the maximum extent permitted taking into account
75 | Affirmer's express Statement of Purpose. In addition, to the extent the Waiver
76 | is so judged Affirmer hereby grants to each affected person a royalty-free,
77 | non transferable, non sublicensable, non exclusive, irrevocable and
78 | unconditional license to exercise Affirmer's Copyright and Related Rights in
79 | the Work (i) in all territories worldwide, (ii) for the maximum duration
80 | provided by applicable law or treaty (including future time extensions), (iii)
81 | in any current or future medium and for any number of copies, and (iv) for any
82 | purpose whatsoever, including without limitation commercial, advertising or
83 | promotional purposes (the "License"). The License shall be deemed effective as
84 | of the date CC0 was applied by Affirmer to the Work. Should any part of the
85 | License for any reason be judged legally invalid or ineffective under
86 | applicable law, such partial invalidity or ineffectiveness shall not
87 | invalidate the remainder of the License, and in such case Affirmer hereby
88 | affirms that he or she will not (i) exercise any of his or her remaining
89 | Copyright and Related Rights in the Work or (ii) assert any associated claims
90 | and causes of action with respect to the Work, in either case contrary to
91 | Affirmer's express Statement of Purpose.
92 |
93 | 4. Limitations and Disclaimers.
94 |
95 | a. No trademark or patent rights held by Affirmer are waived, abandoned,
96 | surrendered, licensed or otherwise affected by this document.
97 |
98 | b. Affirmer offers the Work as-is and makes no representations or warranties
99 | of any kind concerning the Work, express, implied, statutory or otherwise,
100 | including without limitation warranties of title, merchantability, fitness
101 | for a particular purpose, non infringement, or the absence of latent or
102 | other defects, accuracy, or the present or absence of errors, whether or not
103 | discoverable, all to the greatest extent permissible under applicable law.
104 |
105 | c. Affirmer disclaims responsibility for clearing rights of other persons
106 | that may apply to the Work or any use thereof, including without limitation
107 | any person's Copyright and Related Rights in the Work. Further, Affirmer
108 | disclaims responsibility for obtaining any necessary consents, permissions
109 | or other rights required for any use of the Work.
110 |
111 | d. Affirmer understands and acknowledges that Creative Commons is not a
112 | party to this document and has no duty or obligation with respect to this
113 | CC0 or use of the Work.
114 |
115 | For more information, please see
116 |
117 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | # Awesome Textualize Projects
9 | [](https://github.com/sindresorhus/awesome) [](https://github.com/oleksis/awesome-textualize-projects/actions/workflows/lint.yml)
10 |
11 | > A curated list of awesome projects related to [Textualize].
12 |
13 | Textualize is responsible for creating frameworks / projects like:
14 |
15 | - [Textual](https://github.com/Textualize/textual):
16 | a TUI (Text User Interface) framework for Python inspired by modern web development.
17 | - [Rich](https://github.com/Textualize/rich):
18 | a Python library for rich text and beautiful formatting in the terminal.
19 | - [Rich CLI](https://github.com/Textualize/rich-cli):
20 | a command line toolbox for fancy output in the terminal
21 |
22 | ## Contents
23 |
24 | - [Official Resources](#official-resources)
25 | - [Textual](#textual)
26 | - [Rich](#rich)
27 | - [Rich CLI](#rich-cli)
28 | - [Community](#community)
29 | - [Third Party Applications](#third-party-applications)
30 | - [Tutorials](#tutorials)
31 |
32 | ## Official Resources
33 |
34 | - [Official Site][textualize]
35 | - [Official Textualize organization](https://github.com/Textualize)
36 | - [Textualize Blog Announcement](https://www.textualize.io/blog)
37 |
38 | ### Textual
39 |
40 | - [Textual Docs](https://textual.textualize.io/) - Build amazing TUIs (Text User Interfaces) with this innovative Python framework.
41 | - [Gallery](https://www.textualize.io/textual/gallery)
42 |
43 | ### Rich
44 |
45 | - [Rich Docs](https://rich.readthedocs.io/en/latest/) - Beautiful output in the terminal and Jupyter notebook with this powerful Python library. Tables, panels, progress bars, trees, syntax highlighting, pretty printing, and much more.
46 | - [Gallery](https://www.textualize.io/rich/gallery)
47 |
48 | ### Rich CLI
49 |
50 | - [Rich CLI Repository](https://github.com/Textualize/rich-cli.git) - Rich from the command prompt. Syntax highlight many file-types, with special support for markdown, json, and CSV tables.
51 |
52 | ## Community
53 |
54 | - [Textualize Community](https://community.textualize.io/) - This community is for those wishing interesting in build user interfaces within the terminal using Rich and Textual.
55 |
56 | ### Third Party Applications
57 |
58 | - [Markdown Browser](https://github.com/willmcgugan/textual-markdown) - Markdown in the terminal.
59 | - [Kupo](https://github.com/darrenburns/kupo) - A terminal file browser, kupo!
60 | - [Dunk](https://github.com/darrenburns/dunk) - Prettier git diffs in the terminal 🎨.
61 | - [Shira](https://github.com/darrenburns/shira) - The python inspector 🔍.
62 | - [Autocomplete](https://github.com/darrenburns/textual-autocomplete) - Easily add autocomplete dropdowns to your Textual apps.
63 | - [Rich Pixels](https://github.com/darrenburns/rich-pixels) - A Rich-compatible library for writing pixel images and ASCII art to the terminal.
64 | - [Astview](https://github.com/davep/textual-astview) - A Textual-based Python AST viewing widget library and application.
65 | - [FivePyFive](https://github.com/davep/fivepyfive) - An annoying puzzle for the terminal; built with Textual.
66 | - [Canvas](https://github.com/davep/textual-canvas) - A simple character-based canvas widget for use with Textual.
67 | - [HumBLE Explorer](https://github.com/koenvervloesem/humble-explorer) - A cross-platform, command-line and human-friendly Bluetooth Low Energy Scanner built with Textual.
68 | - [Select](https://github.com/mitosch/textual-select) - A simple drop-down (select) for Textual with an optional search functionality.
69 | - [Imageview](https://github.com/adamviola/textual-imageview) - A simple terminal-based image viewer.
70 | - [Terminal](https://github.com/mitosch/textual-terminal) - A terminal emulator widget for Textual.
71 | - [Jtree](https://github.com/oleksis/jtree) - A command line interface (CLI) for displaying JavaScript Object Notation (JSON) in a tree view.
72 | - [NoteSH](https://github.com/cvaniak/notesh) - A fully functional sticky notes App in your Terminal.
73 | - [Fspicker](https://github.com/davep/textual-fspicker) - A Textual widget library for picking things in the filesystem.
74 | - [Datepicker](https://github.com/mitosch/textual-datepicker) - A datepicker for textual.
75 | - [Frogmouth](https://github.com/Textualize/frogmouth) - A Markdown browser for your terminal.
76 | - [Pain](https://github.com/1j01/textual-paint) - 🎨 MS Paint... in your terminal.
77 | - [RecoverPy](https://github.com/PabloLec/RecoverPy) - Interactively find and recover deleted or overwritten files from your terminal.
78 | - [Logmerger](https://github.com/ptmcg/logmerger) - TUI utility to view multiple log files with merged timeline.
79 | - [Palettepal](https://github.com/cdelker/palettepal) - Terminal-Based Color Editor and Palette Generator.
80 | - [Usolitaire](https://github.com/eliasdorneles/usolitaire) - Solitaire in your terminal, powered by Unicode.
81 | - [Upiano](https://github.com/eliasdorneles/upiano) - A Piano in your terminal.
82 | - [textual-plotext](https://pypi.org/project/textual-plotext/) - A Textual widget wrapper for the Plotext plotting library.
83 | - [Textual Query Sandbox](https://pypi.org/project/textual-query-sandbox/) - A simple tool for displaying terminal dimensions.
84 | - [Elia](https://github.com/darrenburns/elia) - A terminal ChatGPT client built with Textual.
85 | - [SSHaMan](https://github.com/cornyhorse/sshaman) - SSH Management.
86 | - [Tinboard](https://pypi.org/project/tinboard/) - A Pinboard client for the terminal.
87 | - [Harlequin](https://pypi.org/project/harlequin/) - The SQL IDE for Your Terminal.
88 | - [Toolong](https://github.com/Textualize/toolong) - A terminal application to view, tail, merge, and search log files (plus JSONL).
89 | - [Conways Game of Life](https://github.com/thomascrha/textual-game-of-life) - A implementation of Conway's game of life (cellular automata) in the terminal using textual.
90 | - [Django-TUI](https://github.com/anze3db/django-tui) - Inspect and run Django Commands in a text-based user interface (TUI).
91 | - [Rexi](https://github.com/royreznik/rexi) - Terminal UI for Regex Testing.
92 |
93 |
94 | ## Tutorials
95 |
96 | - Welcome to the [Textual Tutorial](https://textual.textualize.io/tutorial/)!
97 |
98 | > Please don't hesitate to make a PR if you have more resources to share. Check out [contributing.md](contributing.md) for more information.
99 |
100 | [textualize]: https://www.textualize.io/
101 |
--------------------------------------------------------------------------------
/awesome-textualize.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oleksis/awesome-textualize-projects/4b59dff3221a74387eeb5eb4a81449f05b1b23f0/awesome-textualize.png
--------------------------------------------------------------------------------
/code-of-conduct.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | In the interest of fostering an open and welcoming environment, we as
6 | contributors and maintainers pledge to making participation in our project and
7 | our community a harassment-free experience for everyone, regardless of age, body
8 | size, disability, ethnicity, gender identity and expression, level of experience,
9 | nationality, personal appearance, race, religion, or sexual identity and
10 | orientation.
11 |
12 | ## Our Standards
13 |
14 | Examples of behavior that contributes to creating a positive environment
15 | include:
16 |
17 | - Using welcoming and inclusive language
18 | - Being respectful of differing viewpoints and experiences
19 | - Gracefully accepting constructive criticism
20 | - Focusing on what is best for the community
21 | - Showing empathy towards other community members
22 |
23 | Examples of unacceptable behavior by participants include:
24 |
25 | - The use of sexualized language or imagery and unwelcome sexual attention or
26 | advances
27 | - Trolling, insulting/derogatory comments, and personal or political attacks
28 | - Public or private harassment
29 | - Publishing others' private information, such as a physical or electronic
30 | address, without explicit permission
31 | - Other conduct which could reasonably be considered inappropriate in a
32 | professional setting
33 |
34 | ## Our Responsibilities
35 |
36 | Project maintainers are responsible for clarifying the standards of acceptable
37 | behavior and are expected to take appropriate and fair corrective action in
38 | response to any instances of unacceptable behavior.
39 |
40 | Project maintainers have the right and responsibility to remove, edit, or
41 | reject comments, commits, code, wiki edits, issues, and other contributions
42 | that are not aligned to this Code of Conduct, or to ban temporarily or
43 | permanently any contributor for other behaviors that they deem inappropriate,
44 | threatening, offensive, or harmful.
45 |
46 | ## Scope
47 |
48 | This Code of Conduct applies both within project spaces and in public spaces
49 | when an individual is representing the project or its community. Examples of
50 | representing a project or community include using an official project e-mail
51 | address, posting via an official social media account, or acting as an appointed
52 | representative at an online or offline event. Representation of a project may be
53 | further defined and clarified by project maintainers.
54 |
55 | ## Enforcement
56 |
57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be
58 | reported by contacting the project team. All
59 | complaints will be reviewed and investigated and will result in a response that
60 | is deemed necessary and appropriate to the circumstances. The project team is
61 | obligated to maintain confidentiality with regard to the reporter of an incident.
62 | Further details of specific enforcement policies may be posted separately.
63 |
64 | Project maintainers who do not follow or enforce the Code of Conduct in good
65 | faith may face temporary or permanent repercussions as determined by other
66 | members of the project's leadership.
67 |
68 | ## Attribution
69 |
70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71 | available at [http://contributor-covenant.org/version/1/4][version]
72 |
73 | [homepage]: http://contributor-covenant.org
74 | [version]: http://contributor-covenant.org/version/1/4/
75 |
--------------------------------------------------------------------------------
/contributing.md:
--------------------------------------------------------------------------------
1 | # Contribution Guidelines
2 |
3 | Please note that this project is released with a [Contributor Code of Conduct](code-of-conduct.md). By participating in this project you agree to abide by its terms.
4 |
5 | If you are new to open source, I've written a [guide for how to contribute](https://css-tricks.com/how-to-contribute-to-an-open-source-project/).
6 |
7 | > The pull request should have a useful title. Pull requests with `Update readme.md` as title will be closed. Please carefully read everything in `Adding to this list`.
8 |
9 | ## Table of Contents
10 |
11 | - [Adding to this list](#adding-to-this-list)
12 | - [Updating your Pull Request](#updating-your-pull-request)
13 |
14 | ## Adding to this list
15 |
16 | Please ensure your pull request adheres to the following guidelines:
17 |
18 | - Please submit your contribution at the end of the list of the relevant category. If you don't find a section that it belongs in, please make one.
19 | - Please don't use a long description. The description should not wrap to 3 lines, ideally it should fit on one.
20 | - Search previous suggestions before making a new one, as yours may be a duplicate.
21 | - Please don't use bold or italics unless it's somehow appropriate to the link.
22 | - Make sure the list is useful before submitting. That implies it has enough content and every item has a good succinct description.
23 | - Make an individual pull request for each suggestion.
24 | - Use [Title Casing](https://titlecaseconverter.com/).
25 | - Use the following format: `[List Name](link)`
26 | - New categories or improvements to the existing categorization are welcome.
27 | - Please check your spelling and grammar.
28 | - Make sure your text editor is set to remove trailing whitespace.
29 | - The pull request and commit should have a useful title.
30 | - The body of your commit message should contain a link to the repository.
31 |
32 | Thank you for your suggestions!
33 |
34 | ## Updating your Pull Request
35 |
36 | Sometimes, we will ask you to edit your Pull Request before it is included. This is normally due to spelling errors or because your PR didn't match the awesome-actions list guidelines.
37 |
38 | [Here](https://github.com/RichardLitt/knowledge/blob/master/github/amending-a-commit-guide.md) is a write up on how to change a Pull Request, and the different ways you can do that.
39 |
--------------------------------------------------------------------------------