MCPcopy Index your code
hub / github.com/AnonMiraj/Tanin

github.com/AnonMiraj/Tanin @v0.1.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.1.0 ↗ · + Follow
106 symbols 221 edges 20 files 1 documented · 1%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Tanin

A simple, focused TUI ambient noise generator written in Rust. Focus, relax, or sleep with your favorite background sounds directly from your terminal.

Inspired by Blanket.

Features

  • TUI Interface: Fast, keyboard-centric interface built with Ratatui (mouse is also supported (: ).
  • Audio Mixing: Play multiple sounds simultaneously with individual volume controls.
  • Custom Sounds: Built-in support for downloading sounds from YouTube and other sources via yt-dlp.
  • Presets: Save and load your perfect soundscapes.

Installation

Requirements

  • Optional: yt-dlp (for downloading custom sounds)

Build & Run

git clone https://github.com/AnonMiraj/Tanin.git
cd Tanin
cargo run --release

Configuration & Custom Sounds

Tanin stores configuration in your system's standard config directory (e.g., ~/.config/tanin/ on Linux).

Adding Sounds Manually

You can add custom sounds by editing sounds.toml in your configuration directory. Use the format [Category.Sound_NAME] to group sounds.

Example:

[idk.1_Hour_of_Silence_Occasionally_Broken_up_by_a_Metal_Pipe_Falling_Sound_Effect]
file = "~/.local/share/tanin/sounds/An_hour_of_metal_pipes.mp3" # auto added if url is provided
url = "https://www.youtube.com/watch?v=YmHZI03a_Yo"
icon = "🎵" # Optional

Configuration (config.toml)

The config.toml file handles general application settings: * general.hidden_categories: List of categories to hide from the view. * general.category_order: Define the sort order of categories. * sounds.<id>.hidden: Hide specific sounds.

Core symbols most depended-on inside this repo

scroll_into_view
called by 11
src/app/navigation.rs
get_filtered_sounds
called by 8
src/app.rs
set_current_volume
called by 7
src/app/audio.rs
save
called by 6
src/config.rs
is_playing
called by 6
src/audio.rs
set_volume
called by 5
src/audio.rs
set_master_volume
called by 5
src/app/audio.rs
play
called by 3
src/audio.rs

Shape

Method 56
Function 29
Class 16
Enum 5

Languages

Rust100%

Modules by API surface

src/audio.rs16 symbols
src/static_data.rs12 symbols
src/app/navigation.rs10 symbols
src/app.rs9 symbols
src/config.rs8 symbols
src/main.rs7 symbols
src/session.rs6 symbols
src/app/input.rs6 symbols
src/app/download.rs6 symbols
src/presets.rs5 symbols
src/app/presets.rs5 symbols
src/app/audio.rs5 symbols

For agents

$ claude mcp add Tanin \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact