████████╗██╗██████╗ ███████╗██╗ ██╗██████╗
╚══██╔══╝██║██╔══██╗██╔════╝██║ ██║╚════██╗
██║ ██║██║ ██║█████╗ ███████║ █████╔╝
██║ ██║██║ ██║██╔══╝ ╚════██║██╔═══╝
██║ ██║██████╔╝███████╗ ██║███████╗
╚═╝ ╚═╝╚═════╝ ╚══════╝ ╚═╝╚══════╝
Terminal Integrated Developer Environment
-42-
tide42 is licensed under the GNU General Public License v3.0 or later.
See the LICENSE file for full details.
tide42 includes termic.sh, a lightweight, interactive C/C++ environment launcher. It will be installed automatically to /usr/local/bin/termic unless it already exists.
This script is licensed under GPLv3 and included with permission.
An ultra-efficient Neovim based IDE for Python and C/C++ prototyping. Formerly known as Xtide86
1.2.2
Tide42 is inspired in part by The Hitchhiker’s Guide to the Galaxy, where "42" is famously revealed as the Answer to the Ultimate Question of Life, the Universe, and Everything.
This project reflects that same spirit: a terminal IDE that encourages curiosity, simplicity, and discovery—you ask the questions. Tide42 is meant to be your solution, leaving the questions in your hands.
- New mapping added to display NERDTree in any buffer or if you have opened a file in the NERDTree buffer. Alternately, use :NERDTreeExplore in the desired buffer.
- Tide42 now includes Gentoo in its install logic and prompts users whether they would like to continue with the installation before updating or compiling.
- Mac users may have to run :PlugInstall manually after initial installation.
- Screenshots of Tide42 on a Macbook Air (Apple Silicon) and Macbook Pro(x86_64) have been added.
- Man page currently does not install on Macbooks. The repo directory now contains tide42man.md which is a copy of the man page for Apple users
- Added hotkey for new tab \t
- The keybind mappings \z and \b now focus the file editor with NERDTree shown or hidden.
- Active and unsaved tabs may be closed with :BD (unsaved work will be lost)
- Tabs can be cycled through the file editor buffer. Only inactive tabs may be closed.
Ctrl+Alt |\
================
qw | qwertyuiop
asdfg | sfghjl
zx | zxcvbnm
███ ███ ███ ███
███████████████
███ ███████████████ ███
█ ███████ ███████ █
█ ███████ █
██ ███ ██ ███ █ ███ ██ ███ ██
████ █████████ ████ ████ █████████ ████
█ ████ ████ ███ █ ███ ████ ████ █
█ █ █ █ █████████ █ █ █ █
██ ███ ██ ██ ███ █ █████████ █ ███ ██ ██ ███ ██
█████████ ██████████ ██████████ █████████
████ ████ ████ █ ███ █ ████ ████ ████
██ █ ██ ████ ███████ ███████ ████ ██ █ ██
███ ███ █ ████ █ █ █ ████ █ ███ ███
████████████████ ███ █████ ███ ████████████████
█████ ███████████ █████
█████ █████████ ███ ███ █████████ █████
██ ████████████ ██ █ █ ██ ████████████ ██
█████████ █████ █ ██ ██ █ █████ █████████
█████████ █████ █ █ █████ █████████
██████████ █████ █ ██ ██ █ █████ ██████████
██████████████████ █ █ █ █ ████████████████
█ █ █ █
█ █ █ █ █
█ █ █ █ █
█ █ █ █
█ █ █ █ █ █
█ █ █
█ █ █ █ █
- Set colorscheme: --colorscheme, -cs
- Low Color: --low-color, -lc
- Check version: --version
- Silence log: --quiet
- Help: --help
- Install location: --whereami
- Lite mode: --lite
- Check for updates: --check-update
- Update: --update
Tmux based command: Ctrl-q + d (or gui exit button) = Exit and save tmux state (lost on restart of PC)
Nvim based command :Q = Force-quit the program (reset for new session)
:BD = Force close tab (unsaved work will be lost)
Esc Esc = Close opened plugin window
Ctrl+ww = Cycle between vim buffers within a tmux buffer
Ctrl+w + <-, ^, ->, v = Selects vim buffer within current tmux buffer
\j = Display NERDTree in any buffer.
\n = Restart IPython buffer if process exits.
\w = fzf selects vim buffer from menu within current tmux buffer (fuzzy finder, vim plugin)
\e = Locate file within current directory
\r = ripgrep within file
\t = Open new tab with No Name file
\y = toggle between default and alternate colorscheme
\i = vertical resize
\u = resize
\o = optional OpenAI ChatGPT implementation with API key (stored in a global variable)
\p = Paste selected text into IPython buffer and expand buffer, entering insert mode
\l = Paste selected text into TermiC buffer and expand buffer, entering insert mode
\m = Paste selected text into nvim file editor buffer from any buffer: terminal, ipython, or termic
\q = Close all active buffers within tmux panel and restart Tide42 UI
Ctrl+Alt+a = Maximize left tmux buffer
Ctrl+Alt+s = Split tmux buffers
Ctrl+Alt+d = Maximize right tmux buffer
Ctrl+Alt+z = Push active buffer 25%
Ctrl+Alt+x = Push active buffer 30%
Ctrl+Alt+c = Push active buffer 60%
Ctrl+Alt+v = Push active buffer 75%
Ctrl+q + <-, -> = Switch between tmux buffers (selected buffer matches tmux bar color on the bottom)
[c] = Jump to previous Git hunk
]c = Jump to next Git hunk
\hs = Stage current hunk
\hu = Undo staging of current hunk
\hr = Reset current hunk
\hb = Blame current line
<TAB> = Cycle to next buffer
<S-TAB> = Cycle to previous buffer
\f = Grid (10x10)
\g = Grid (5x10)
\z = Focus file editor with NERDTree hidden
\b = Focus file editor and show NERDTree
\s = Maximize and enter TermiC buffer (left)
\x = Maximize and enter Terminal buffer(right)
\c = Maximize IPython buffer (upper)
\v = Currently selected buffer
jk = Command mode from nvim buffer
:Hs = Quick command for horizontal split
- To save all tabs at once use :wall or :wa
- To cycle terminal buffers within the current selected buffer use \w otherwise cycle file editor tabs with Tab and Shift + Tab.
- Tide42 will detect and run the Friendly Interactive Shell but this causes significant loss in performance due to errors in the terminal buffer when resized. Bash or zsh are recommended.
- Edit your highlight and grid colors in $HOME/tide42/colorscheme.vim
- If you would like to map tide42 to a keyboard shortcut the best method is to use this command and substitute your terminal name: -- bash -c "/usr/local/bin/tide42; exec bash"
- \h to select all when in nvim command mode followed by \p or \l for efficient transfer of text into IPython or TermiC
- Once in insert mode in any
nvimbuffer, the recommended way of entering command mode isjk - NERDTree may be refreshed with Shift+r after performing operations in the terminal buffer.
- All NeoVim commands can also be used in any other buffer eg. /Documents to find and jump to ~/Documents directory.
- Quickly enter focused and expanded file editor mode with Ctrl + Alt + A/D (make sure you are in the correct tmux buffer), \i +
- Fine tune tmux buffer size with hold Ctrl + q + arrow keys.
- Open/close NERDTree with \z and \i +
- Switch between tty sessions and retain tide42 session through tmux. Handy if connecting through SSH.
- If you're running tide42 inside a tmux or custom terminal session, you might run into issues when trying to save root-owned files from within Neovim: Using commands like :w !sudo tee % in NeoVim may silently fail to prompt for a password and kick you out after 3 attempts. Solutions: Use a GUI editor instead within a tide42 terminal buffer to avoid leaving your session: ex. sudoedit /etc/systemd/system/... Launch a root nvim in a nested terminal within tide42:
Work remotely. Drop connection. Pick up exactly where you left off. Instructions:
- ssh user@remotehost
- run tide42 and use any buffer for file transfers or processing.
- Do your work. Close the laptop. Disconnect. Go outside.
- ssh user@remotehost
- run tide42 to reconnect to tmux protected tide42 session.
- Full
tmuxandnvim'-powered terminal IDE with dynamic buffer management - Seamless integration with
IPython TermiCsupport with quick pasting and testing C/C++ (smaller blocks recommended or lambda specific functions) seeTermicdocumentation at https://github.com/hanoglu/TermiC)- Hotkey support for sending code directly into live interpreter sessions
- Single-interface fallback for simple edits
- Quick launch from Gnome via icon or keyboard shortcut
- Works in the tty as well as the terminal emulator
tmuxneovim0.9.0+ (tested on 0.9.5 and 0.12)vim-plugcurl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vimTermiCwget "https://raw.githubusercontent.com/hanoglu/TermiC/main/TermiC.sh" (live C/C++ shell)Anaconda3withIPython(preferred, but may work with baseIPython)bashorzsh- Works on ARM. Tested on a Raspberry Pi5. Nvim 0.9.5 and 0.12 had to be built from source. Check your distro and dependencies on ARM.
- Works on 32 bit systems. Newer versions of nvim must be built from source.
- chmod +x install.sh
- ./install
- tide42 to start session
- Go to https://github.com/logicmagix/tide42 and click "Code" > "Download ZIP".
- Extract the ZIP to a directory (e.g., ~/tide42/).
- Run the installation script:
- cd ~/tide42/
- ./install.sh
- tide42 --update
- The sudo command may prompt for your password to modify /usr/local/bin.
- If you used a ZIP download, you cannot use tide42 --update unless you convert the directory to a Git repository.
- Launch tide42 from your terminal or assigned launcher with tide42 or tide42 . It will:
- Open a tmux session with vertically split nvim, TermiC, and IPython
- Send text from the file editor to the live interpreter buffer with ggVG(select all) \p for ipython and \l for TermiC
- Automatic insert mode and buffer sizing for paste to Termic and paste to IPython functions.
- Support session save (Ctrl+q+d) and reset with :Q
- To uninstall, chmod +x uninstall.sh and ./uninstall.sh from repo directory
- To run Tide42 without tmux, use the flag --lite.
-
See ~/.config/tide42/tide42.vim for plugin configuration, UI tweaks, and terminal behavior. Feel free to remix buffer sizes and colors to match your workflow.
-
Use this one liner to set up your OpenAI API key: echo
'export OPENAI_API_KEY="your_api_key_here"' >> ~/.$(basename $SHELL)rc && source ~/.$(basename $SHELL)rc -
If you are using X11 or a modern fork, you can set your transparency settings in your terminal emulator and use \y in Tide42 to toggle transparency on/off.
- tide42 includes termic.sh, a lightweight live shell. It installs automatically to /usr/local/bin/termic. Licensed under GPLv3 and included with permission.
Pull requests, stars, and forks welcome
- See tide42 in action:
- Tide42 autodetects bash or zsh
- Customize nvim to your liking seperately from Tide42
- Tide42 intergrates nicely with Hyprland hotkeys on Wayland
- Test and execute c or cpp code within Tide42 using Termic
- Alternately use local models within the terminal buffer
- Scroll through open buffers and select from the list.
- Quickly search for files.
- Fast ripgrep within files with preview.
- Easily read pdf study material or your favorite terminal browser to reference material while you work.
- Seamless tty functionality with custom bindings makes the SSH experience feel like using a WM.
tide42 uses and integrates the following open-source tools:
- NeoVim – Hyper-extensible Vim-based text editor.
- Vim – Highly configurable text editor built to make creating and changing any kind of text very efficient.
- tmux – Terminal multiplexer for managing multiple terminal sessions.
- Anaconda3 – Python/R distribution for data science and machine learning.
- IPython – Interactive Python shell with rich functionality.
- vim-plug – Minimalist Vim plugin manager by Junegunn Choi.
- NERDTree – File system explorer for Vim by Vineet Sinha.
- TermiC – Terminal integration utility by [Yusuf Kagan Hanoglu Max Schillinger].
- vim-plug
- NERDTree
- vim-surround – Surroundings management by Tim Pope.
- vim-commentary – Comment/uncomment code quickly by Tim Pope.
- vim-airline – Lean & mean status/tabline for Vim.
- fzf – General-purpose command-line fuzzy finder by Junegunn Choi.
- fzf.vim – Vim/Neovim integration for fzf by Junegunn Choi.
- plenary.nvim – Lua utility functions for Neovim by nvim-lua.
- telescope.nvim – Highly extendable fuzzy finder over lists (https://github.com/nvim-telescope).
- nui.nvim – UI component library for Neovim by Munif Tanjim.
- ChatGPT.nvim – ChatGPT integration for Neovim by Jack Mort.
- nvim-highlight-colors – Highlight color codes with their actual color by Breno Prata.
- nvim-web-devicons – Adds file type icons to Neovim by kyazdani42 & contributors.
- bufferline.nvim – Tab-like bufferline with icons by Akinsho.
- gitsigns.nvim – Git signs in the gutter + hunk actions by Lewis Warren.
Thanks to the developers of these projects for making powerful tools free and accessible.











