# Announcing Term.jl

**URL:** https://discourse.julialang.org/t/announcing-term-jl/78170
**Category:** Package Announcements
**Tags:** package, announcement, cli
**Created:** [March 20, 2022, 6:01pm UTC](https://discourse.julialang.org/t/announcing-term-jl/78170 "2022-03-20T18:01:23Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![FedeClaudi](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fedeclaudi/32/33490_2.png) [@FedeClaudi](https://discourse.julialang.org/u/FedeClaudi)
#### Post date: [March 20, 2022, 6:01pm UTC](https://discourse.julialang.org/t/announcing-term-jl/78170/1 "2022-03-20T18:01:23Z")

</div>

Announcing [Term.jl](https://github.com/FedeClaudi/Term.jl), a package inspired by WIll McGougan’s [rich](https://github.com/Textualize/rich) package in Python to produce stylized, structured output for your terminal, in Julia.

Docs: [https://fedeclaudi.github.io/Term.jl/v0.2/](https://t.co/SpsF9sqvL4)

 ![image](https://global.discourse-cdn.com/julialang/original/3X/6/1/61fc53a7a67a20a76828978a63ee606df76cd4cc.jpeg)

Term can be used to create colored and styled text, using either dedicated macros or a simple markup language:

 ![image](https://global.discourse-cdn.com/julialang/original/3X/7/4/74b94bc06b1b7ac742b237fbd2142bfa8cc56e04.jpeg)  
 ![image](https://global.discourse-cdn.com/julialang/original/3X/1/4/1402dd56c5fefb357b699f0608f2fe30da33ec08.jpeg)

But really it’s all about `Renderables` structured graphic elements like Panel, TextBox and Tree  
 ![image](https://global.discourse-cdn.com/julialang/original/3X/a/b/ab2f42d5b24f0979232b58f9074fff31b0c2202f.png)

 ![image](https://global.discourse-cdn.com/julialang/original/3X/4/9/496309f6ed6fafe70e11f8113d4619e68f687266.jpeg)  
 ![image](https://global.discourse-cdn.com/julialang/original/3X/6/5/6587a3eb727f7be6de846dc99a6ae9c79a841df9.jpeg)  
 ![image](https://global.discourse-cdn.com/julialang/original/3X/0/f/0fe58e89745ee8cc74beeef06b137a6fce236245.png)

Renderables can be composed to create layouts. You can put almost anything in a Panel and vertically/horizontally stack multiple renderables:

 ![image](https://global.discourse-cdn.com/julialang/original/3X/f/1/f171dec3506027f315fc570e27c3b623aa799e4b.png)  
 ![image](https://global.discourse-cdn.com/julialang/original/3X/3/3/33fc50111a19c3e69143776c6c89fe95b6d7cf69.png)

Also Term.jl can be used to produce beautiful log and error messages and progress bars  
 ![image](https://global.discourse-cdn.com/julialang/original/3X/f/c/fc00c8a18ebcc9626816abf9e9ae893fa00542bd.jpeg)  
 ![image](https://global.discourse-cdn.com/julialang/original/3X/0/2/029a1e55c781b4a4087a318073279b5d40b222d1.jpeg)

 ![image](https://global.discourse-cdn.com/julialang/original/3X/8/6/86afe3c7ef339670cc299ce8c13de1b2096ba8d2.jpeg)

---

<div class="post-metadata">

### Author: ![rveltz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rveltz/32/2707_2.png) [@rveltz](https://discourse.julialang.org/u/rveltz)
#### Post date: [March 20, 2022, 6:06pm UTC](https://discourse.julialang.org/t/announcing-term-jl/78170/2 "2022-03-20T18:06:56Z")

</div>

this is insanely good

---

<div class="post-metadata">

### Author: ![FedeClaudi](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fedeclaudi/32/33490_2.png) [@FedeClaudi](https://discourse.julialang.org/u/FedeClaudi)
#### Post date: [March 20, 2022, 6:09pm UTC](https://discourse.julialang.org/t/announcing-term-jl/78170/3 "2022-03-20T18:09:48Z")

</div>

Thank you, it will keep getting better I’ve got a few more features planned 🕶

---

<div class="post-metadata">

### Author: ![DoktorMike](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/doktormike/32/2736_2.png) [@DoktorMike](https://discourse.julialang.org/u/DoktorMike)
#### Post date: [March 21, 2022, 9:23am UTC](https://discourse.julialang.org/t/announcing-term-jl/78170/4 "2022-03-21T09:23:51Z")

</div>

Really impressive! 💪🏻

---

<div class="post-metadata">

### Author: ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)
#### Post date: [March 21, 2022, 1:58pm UTC](https://discourse.julialang.org/t/announcing-term-jl/78170/5 "2022-03-21T13:58:58Z")

</div>

How well do the things like colors work with the inline results of say VSCode @pfitzseb ?

---

<div class="post-metadata">

### Author: ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)
#### Post date: [March 21, 2022, 3:37pm UTC](https://discourse.julialang.org/t/announcing-term-jl/78170/6 "2022-03-21T15:37:02Z")

</div>

Probably not very well.

---

<div class="post-metadata">

### Author: ![colintbowers](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/colintbowers/32/8033_2.png) [@colintbowers](https://discourse.julialang.org/u/colintbowers)
#### Post date: [March 22, 2022, 4:26am UTC](https://discourse.julialang.org/t/announcing-term-jl/78170/7 "2022-03-22T04:26:01Z")

</div>

Looks awesome! This will be particularly nice for displaying results of statistical procedures in nice neat tables, with statistically significant features popping out in colour. I’ll definitely be using it.

---

<div class="post-metadata">

### Author: ![FedeClaudi](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fedeclaudi/32/33490_2.png) [@FedeClaudi](https://discourse.julialang.org/u/FedeClaudi)
#### Post date: [March 22, 2022, 7:55am UTC](https://discourse.julialang.org/t/announcing-term-jl/78170/8 "2022-03-22T07:55:42Z")

</div>

Thank you! A couple releases down the line Term will also include a Table functionality!

---

<div class="post-metadata">

### Author: ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://discourse.julialang.org/u/jules)
#### Post date: [March 22, 2022, 9:39am UTC](https://discourse.julialang.org/t/announcing-term-jl/78170/9 "2022-03-22T09:39:27Z")

</div>

Is this mostly meant for static output or would it also handle resizing of the terminal, and maybe some light interaction?

---

<div class="post-metadata">

### Author: ![FedeClaudi](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fedeclaudi/32/33490_2.png) [@FedeClaudi](https://discourse.julialang.org/u/FedeClaudi)
#### Post date: [March 22, 2022, 10:21am UTC](https://discourse.julialang.org/t/announcing-term-jl/78170/10 "2022-03-22T10:21:55Z")

</div>

Currently it can only handle static output (except the progress bars that get “updated” at every referesh, but are not interactive). All you see is basically just text printed out in the terminal.

It might include some interactivity in the future, bot not any time soon.

---

<div class="post-metadata">

### Author: ![HenriDeh](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/henrideh/32/8316_2.png) [@HenriDeh](https://discourse.julialang.org/u/HenriDeh)
#### Post date: [March 22, 2022, 10:26am UTC](https://discourse.julialang.org/t/announcing-term-jl/78170/11 "2022-03-22T10:26:02Z")

</div>

@findmyway This could be nice for prettier agent tree printing in RL.jl, with colors coding to better differentiate the leaves of the trajectory and the policy and other sub-components for example 🤩.

---

<div class="post-metadata">

### Author: ![FedeClaudi](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fedeclaudi/32/33490_2.png) [@FedeClaudi](https://discourse.julialang.org/u/FedeClaudi)
#### Post date: [March 22, 2022, 11:01am UTC](https://discourse.julialang.org/t/announcing-term-jl/78170/12 "2022-03-22T11:01:45Z")

</div>

For anyone that wants to stay updated on Term’s development, twitter is the best place: [https://twitter.com/Federico\_claudi](https://twitter.com/Federico_claudi)

---

<div class="post-metadata">

### Author: ![findmyway](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/findmyway/32/4946_2.png) [@findmyway](https://discourse.julialang.org/u/findmyway)
#### Post date: [March 23, 2022, 1:34am UTC](https://discourse.julialang.org/t/announcing-term-jl/78170/13 "2022-03-23T01:34:52Z")

</div>

Great suggestion! Will do!

---

<div class="post-metadata">

### Author: ![Wind](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/wind/32/25959_2.png) [@Wind](https://discourse.julialang.org/u/Wind)
#### Post date: [March 26, 2022, 10:33am UTC](https://discourse.julialang.org/t/announcing-term-jl/78170/14 "2022-03-26T10:33:38Z")

</div>

Impressive! Could it be interactive?

---

<div class="post-metadata">

### Author: ![Christopher\_Jefferso](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/christopher_jefferso/32/33747_2.png) [@Christopher\_Jefferso](https://discourse.julialang.org/u/Christopher_Jefferso)
#### Post date: [March 27, 2022, 7:48am UTC](https://discourse.julialang.org/t/announcing-term-jl/78170/15 "2022-03-27T07:48:41Z")

</div>

Out of interest, is this package currently accessible to blind / partially sighted users? If not, could someone create an alternative output format which was?

---

<div class="post-metadata">

### Author: ![FedeClaudi](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fedeclaudi/32/33490_2.png) [@FedeClaudi](https://discourse.julialang.org/u/FedeClaudi)
#### Post date: [March 27, 2022, 8:10am UTC](https://discourse.julialang.org/t/announcing-term-jl/78170/16 "2022-03-27T08:10:19Z")

</div>

one day!

---

<div class="post-metadata">

### Author: ![FedeClaudi](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fedeclaudi/32/33490_2.png) [@FedeClaudi](https://discourse.julialang.org/u/FedeClaudi)
#### Post date: [March 27, 2022, 8:10am UTC](https://discourse.julialang.org/t/announcing-term-jl/78170/17 "2022-03-27T08:10:51Z")

</div>

Hi,

I’m afraid I don’t know anything about how one would go about doing that, but I’d like to! Is there any good resource on the topic?

---

<div class="post-metadata">

### Author: ![ig-or](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ig-or/32/4975_2.png) [@ig-or](https://discourse.julialang.org/u/ig-or)
#### Post date: [March 28, 2022, 5:22pm UTC](https://discourse.julialang.org/t/announcing-term-jl/78170/18 "2022-03-28T17:22:23Z")

</div>

This is so cool!!! really useful. Thanks a lot!!

---

<div class="post-metadata">

### Author: ![Ahmed\_Salih](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ahmed_salih/32/206579_2.png) [@Ahmed\_Salih](https://discourse.julialang.org/u/Ahmed_Salih)
#### Post date: [August 26, 2022, 8:54pm UTC](https://discourse.julialang.org/t/announcing-term-jl/78170/19 "2022-08-26T20:54:32Z")

</div>

@FedeClaudi sorry for reviving this thread, but I was curious about whether or not there is a way for Term.jl to automatically color format XML statements such as (all grey in terminal):

```julia
<simulationdomain>
  <posmin x="default" y="default" z="default"/>
  <posmax x="default" y="default" z="default"/>
</simulationdomain>

```

And turn them into (from Notepad++)

 ![image](https://global.discourse-cdn.com/julialang/original/3X/f/e/fe6f6f2e3bf152a7ba5791211dfe867a97e78752.png)

I.e. automatic colour formatting for XML snippets inside of Julia terminal.

Kind regards

---

<div class="post-metadata">

### Author: ![FedeClaudi](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fedeclaudi/32/33490_2.png) [@FedeClaudi](https://discourse.julialang.org/u/FedeClaudi)
#### Post date: [August 27, 2022, 1:33am UTC](https://discourse.julialang.org/t/announcing-term-jl/78170/20 "2022-08-27T01:33:46Z")

</div>

Hi,

The short answer is not really.  
You might have seen Term used to print styled code with syntax highlight:

 ![image](https://global.discourse-cdn.com/julialang/original/3X/9/1/919f1c1bb5a6a852f8f568ccc9b614892fc99fea.png)

but the coloring is actually done by [highlights.jl](https://github.com/JuliaDocs/Highlights.jl), Term just prints it out. If you have a parser that takes XML statements and injects color (via Term’s markup syntax or using ANSI escape codes directly) then yeah you can do it. I don’t know much about XML, but if the syntax is fairly simple perhaps you can work out a few regex expressions to inject color into a string of XML statements.

Hope this helps

[Next page](https://discourse.julialang.org/t/announcing-term-jl/78170.md?page=2)
