## 1. Project Overview & Quickstart (termux/termux-packages)

## File: README.md

# Termux packages


[](https://github.com/termux/termux-packages/actions)
[](https://hub.docker.com/r/termux/package-builder)
[](https://repology.org/repository/termux)

[](https://discord.gg/HXpF69X)
[](https://matrix.to/#/#Termux:matrix.org)
[](https://t.me/termux24x7)
[](https://www.reddit.com/r/termux/)

[](https://repology.org/repository/termux)



This project contains scripts and patches to build packages for the [Termux](https://github.com/termux/termux-app)
Android application.

Quick how-to about Termux package management is available at [Package Management](https://github.com/termux/termux-packages/wiki/Package-Management). It also has info on how to fix **`repository is under maintenance or down`** errors when running `apt` or `pkg` commands.

## Contributing

Read [CONTRIBUTING.md](/CONTRIBUTING.md) and [Developer's Wiki](https://github.com/termux/termux-packages/wiki) for more details.

## Community

The Termux Community docs are available [here](https://github.com/termux/termux-community/blob/site/site/pages/en/index.md).

**All our community members must follow the rules that are defined [here](https://github.com/termux/termux-community/blob/site/site/pages/en/rules/index.md) and any [Content Not Allowed](https://github.com/termux/termux-community/blob/site/site/pages/en/rules/index.md#8-content-not-allowed) must not be posted.**
##



## Sponsors and Funders

[](https://github.com)  
*[GitHub Accelerator](https://github.com/accelerator) ([1](https://github.blog/2023-04-12-github-accelerator-our-first-cohort-and-whats-next))*

&nbsp;

[](https://github.com)  
*[GitHub Secure Open Source Fund](https://resources.github.com/github-secure-open-source-fund) ([1](https://github.blog/open-source/maintainers/securing-the-supply-chain-at-scale-starting-with-71-important-open-source-projects), [2](https://termux.dev/en/posts/general/2025/08/11/termux-selected-for-github-secure-open-source-fund-session-2.html))*

&nbsp;

[](https://nlnet.nl/mobifree)  
*[NLnet NGI Mobifree](https://nlnet.nl/mobifree) ([1](https://nlnet.nl/news/2024/20241111-NGI-Mobifree-grants.html), [2](https://termux.dev/en/posts/general/2024/11/11/termux-selected-for-nlnet-ngi-mobifree-grant.html))*

&nbsp;

[](https://www.cloudflare.com)  
*[Cloudflare](https://www.cloudflare.com) ([1](https://packages-cf.termux.dev))*

---

## File: root-packages/mtr/hsearch/README.md

This hsearch(3) implementation is mostly based on the one present in FreeBSD 11.1.

---

## File: root-packages/arp-scan/hsearch/README.md

This hsearch(3) implementation is mostly based on the one present in FreeBSD 11.1.

## 2. Official Technical Reference & Guides (termux/termux.github.io)

## File: README.md

### Termux.dev

This is the source repository for [termux.github.io](https://termux.github.io) and its custom domain [termux.dev]. The [termux.org] is redirected to [termux.dev]. The [termux.com](https://termux.com/) was previously mirrored from [termux/termux.com](https://github.com/termux/termux.com), but is now redirected to https://play.google.com/store/apps/details?id=com.termux.
##



## Run locally

Get the git submodules with:

```
git submodule update --init
```

And then install dependencies as explained at [Using Jekyll with Pages](https://help.github.com/articles/using-jekyll-with-pages/), and finally run

```
bundle exec jekyll serve --future
```

to start a local server at http://localhost:4000. `--future` is needed to show posts with dates in the future.

If [`_config.yml`] file was updated, then stop server with `ctrl + c` and start it again for changes to take effect.
##



## Add New Category For Posts

1. Add a new page file for the category at `<language>/posts/<category_name>.html` with the following contents, where `<language>` is language code like `ru`. Replace `<category_name>` with the actual name for the category in the file name and [front matter](https://jekyllrb.com/docs/front-matter). The `category_name` variable is used by [`category.html`](_includes/posts/category.html) to load posts for the category. Check [`en/posts/general.html`](en/posts/general.html) for the `general` category as a sample. The front matter title must be language specific.

```
---
layout: page
title: <category_name> Posts
no_add_title_heading: true
category_name: <category_name>
page_ref: /posts/<category_name>.html
---

{% include posts/category.html %}

```

2. Add `[{%- include t.html root="posts" key="views.index.<category_name>" -%}](/{{- page.lang -}}/posts/<category_name>.html)` link for the category in [`_layouts/posts/index.md`](_layouts/posts/index.md) like `[{%- include t.html root="posts" key="views.index.general" -%}](/{{- page.lang -}}/posts/general.html)`. The translation for the category must be added to the `_data/posts/t/<language>/view.yml` file with the `index.<category_name>` key, like in [`_data/posts/t/en/view.yml`](_data/posts/t/en/view.yml). The `index.<category_name>_posts` key must also be added that is used by [`category.html`](_includes/posts/category.html).

3. Add front matter default values for `category` for the `_posts/*/<category_name>` path scope in [`_config.yml`] file. This is required because otherwise jekyll will not assign the `category` automatically to the posts and posts will not be added to the `site.categories` used by [`category.html`](_includes/category.html) and so posts won't show for the category. Check [jekyll docs](https://jekyllrb.com/docs/configuration/front-matter-defaults) for more info. If we used the `<category_name>/_posts/` path for posts, then `<category_name>` would have been automatically assigned to the post since it exists above the `_posts` directory in the path (check [`page.categories` variable](https://jekyllrb.com/docs/variables)), but we can't use that since we need to maintain `_posts/<language>` directory structure and we don't want language to be added as the category and added after `/posts` in url. We can also add `category` to front matter of each post file but that just creates repeatability.

```
defaults:
  -
    scope:
      path: "_posts/*/<category_name>"
    values:
      category: <category_name>
```

4. For each new language added for posts, add following to [`_config.yml`] file so that proper language based route is assigned to posts and the `lang` front matter value is also assigned so that it can be accessed with `page.lang`.

```
  -
    scope:
      path: "_posts/<language>"
    values:
      lang: <language>
      permalink: /<language>/:collection/:categories/:year/:month/:day/:title:output_ext
```
##



## Add New Post In Category

Check [jekyll docs](https://jekyllrb.com/docs/posts) and [github docs](https://docs.github.com/en/pages/setting-up-a-github-pages-site-with-jekyll/adding-content-to-your-github-pages-site-using-jekyll#adding-a-new-post-to-your-site) for details.

1. Add the file for the `en` language post under the directory for the category at `_posts/en/<category_name>/YYYY-MM-DD-POST_TITLE.md`. For example, by creating the file `_posts/en/general/1970-01-01-post-title.md`, jekyll will automatically create a route for the post at `en/posts/general/1970/01/01/post-title.html`. For translations of posts to other languages than `en`, create a file at `_posts/<language>/<category_name>/YYYY-MM-DD-POST_TITLE.md`, where `<language>` is language code like `ru`. The front matter title must be language specific. You can also add `last_modified_at` and `author` key values in the front matter.

```
---
title:  "Post Title"
page_ref: /posts/<category_name>/YYYY/MM/DD/.html
---

Post Content
```

2. Add any asset files used by the post under the `assets/posts/globals/<category_name>/YYYY-MM-DD-POST_TITLE` or `assets/posts/<language>/<category_name>/YYYY-MM-DD-POST_TITLE` directory, like `assets/posts/globals/general/1970-01-01-post-title` or `assets/posts/<language>/general/1970-01-01-post-title` and link to them with `[Text Asset](/assets/posts/globals/general/1970-01-01-post-title/asset.txt)` or ``. Check [jekyll docs](https://jekyllrb.com/docs/posts/#including-images-and-resources) for more.

3. Ensure that the first paragraph of the post is a just a short description of the post since that text will show in the posts list for the category. This is done by setting `show_excerpts` to `true` in [`_config.yml`](_config.yml) and used by [`category.html`](_includes/category.html). Check [jekyll docs](https://jekyllrb.com/docs/posts/#post-excerpts) for more info.

4. Each post of the site must have the `page_ref` key in its front matter for its unique absolute path on the site (not local path) without the language prefix to find alternate translations of a page. All translations must have the same `page_ref` and should equal the english file name. This allows alternate translations to have different language specific filenames, but the same reference to allow site language change and search engine indexing via sitemaps.xml to be added later. For example, `_posts/en/general/1970-01-01-post-title.md` file should have `page_ref: /posts/general/1970/01/01/post-title.html` and so should any of its translations.
##


[termux.dev]: https://termux.dev

---

## File: cn/docs/index.md

---
page_ref: /docs/index.html
lang: cn
---

# Termux文档

欢迎来到Termux的文档。

**目前, [Termux Wiki](https://wiki.termux.dev) 是文档的主要位置，但计划未来将其删除并将所有文档移至此处。 此处的文档正在编写中，将会慢慢更新，其中包含 termux wiki 网站上不可用的信息。**

## 应用

支持以下 Android 应用程序：

- [Termux app](apps/termux/index.md)
##

---

## File: en/docs/index.md

---
page_ref: /docs/index.html
---

# Termux Docs

Welcome to documentation for Termux.

**Currently, [termux wiki site](https://wiki.termux.dev) is the primary place for documentation but there are plans to remove it and move all documentation here instead. The documentation here is in the process of being written and will slowly be updated and contains info that is not available on the wiki site.**

## Apps

The following Android apps are supported.

- [Termux app](apps/termux/index.md)
##