42TUI
Your 42 projects, notes, and coding activity in the terminal. Connect your
42 account, track time with editor plugins, and jump to project folders with
42goto.
Features
- Browse projects, read subjects, open your editor, and run supported testers.
- Keep project notes and coding activity locally, available offline.
- Track coding time with plugins for Vim, Neovim, VS Code, and Zed.
- Jump to local projects with
42goto, with shell completion. - Follow account progress, manage correction slots, and explore your campus's cluster map.
- Follow friends and join club conversations and events.
Account and campus features require a connected 42 account and available data. Some project testers require Docker.
Install and launch
For Linux (glibc) and macOS, on x86_64 or ARM64:
curl -fsSL https://tui.42wip.in/install.sh | sh
You can inspect the installer first. It needs
curl, internet access, and a writable home directory. It installs uv and
Python 3.12 if needed, without administrator rights.
Restart your terminal, then run:
42tui
Connect your 42 account
- Choose Connect 42 account during setup, or open Settings → Profile
with
F5. - Choose Connect / reconnect, then sign in and approve access in your browser. If no browser opens, use Copy login link to open it yourself.
- Return to 42TUI and finish setup: projects folder, editor, theme, and language.
Your project list loads after connection. To change cursus, open Settings → Curriculum → Default cursus. You can skip connection and work with saved projects and local notes.
Your password stays with 42; device credentials use your OS credential store.
42goto
Configure your project's local folder in 42TUI, then enable shell navigation. Add the matching line to your shell config:
# Zsh: ~/.zshrc, after compinit
eval "$(command 42goto --shell-init zsh)"
# Bash: ~/.bashrc
eval "$(command 42goto --shell-init bash)"
Restart your shell, then jump to a project:
42goto libft
42goto # Use the active or most recently tracked project
Press Tab to complete project slugs. Local folders must exist. If 42goto
cannot choose a project automatically, pass its name or slug.
Editor plugins
Configure each project's local folder in 42TUI, then install your editor's plugin:
The plugins call 42tui heartbeat locally as you work. Make sure your editor
can find 42tui on its PATH, or set the executable path in the plugin.
Tracking needs no account connection; file contents are not read and file paths
are not retained.
Everyday use
Press ? or F1 for shortcuts. F2 opens Projects, F3 opens Notes, and F5
opens Settings.
For installer-managed installations:
42tui update
42tui uninstall
Uninstalling preserves local data and credentials. To disconnect first, choose Settings → Profile → Manage 42 account → Disconnect this device. Other installations should be maintained with their original package manager.
If 42tui is not found, restart your terminal and check the installer's printed
executable directory is on your PATH. If icons look wrong, select a Nerd Font
in your terminal settings.
For development setup, see CONTRIBUTING.md.
Metadata
Release files for ft-tui 0.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ft_tui-0.4.1.tar.gz | 326.7 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ft_tui-0.4.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 732.0 kB
Release files / ft_tui-0.4.1.tar.gz
| Download URL | ft_tui-0.4.1.tar.gz |
|---|---|
| Size | 326.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0f020726d027e870ead359874c9747be6d3afa826fab6949411d598f40c5bfeb
|
|
BLAKE2b-256 checksum How to use checksums |
1a9324965031057bb92397aef69e8d06dc08a80788ce06ea566f12930da398c9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logRelease files / ft_tui-0.4.1-py3-none-any.whl
| Download URL | ft_tui-0.4.1-py3-none-any.whl |
|---|---|
| Size | 405.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8d3a5b36d4943184c1dcd57bf8adb69dc9eee25203ec004c174d11a3b0a7eabf
|
|
BLAKE2b-256 checksum How to use checksums |
b8c4fe9a717125db8a08959a8fd98e61f46a0cb252c7713790de39e7767f3c98
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logSecurity for ft-tui 0.4.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for ft_tui-0.4.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.