<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Guides on madtea</title><link>https://madtea.lol/docs/guides/</link><description>Recent content in Guides on madtea</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://madtea.lol/docs/guides/index.xml" rel="self" type="application/rss+xml"/><item><title>Configuration &amp; first run</title><link>https://madtea.lol/docs/guides/setup/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://madtea.lol/docs/guides/setup/</guid><description>&lt;p&gt;How to point madtea at your forge, where it stores credentials, and how the override precedence resolves. This guide assumes the &lt;code&gt;madtea&lt;/code&gt; binary is already installed - see &lt;a href="https://madtea.lol/docs/guides/install/"&gt;install.md&lt;/a&gt; if not. For what scopes to enable on the token, see &lt;a href="https://madtea.lol/docs/appendices/permissions/"&gt;&lt;code&gt;PERMISSIONS.md&lt;/code&gt;&lt;/a&gt;. For how madtea stores the token and the credential-safety guarantees, see &lt;a href="https://madtea.lol/docs/safety/credential-safety/"&gt;&lt;code&gt;credential-safety.md&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="first-run"&gt;First run&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;madtea auth login&lt;/code&gt; walks you through entering your forge URL and pasting an API token, then stores the token securely in your OS keychain (or &lt;code&gt;pass&lt;/code&gt;, or &lt;code&gt;systemd-creds&lt;/code&gt; on a headless server, when no keychain is available). Run it once globally and every repo on that forge is covered:&lt;/p&gt;</description></item><item><title>Editor &amp; MCP client setup</title><link>https://madtea.lol/docs/guides/clients/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://madtea.lol/docs/guides/clients/</guid><description>&lt;p&gt;The same &lt;code&gt;madtea&lt;/code&gt; binary serves an MCP endpoint over stdio (&lt;code&gt;madtea serve&lt;/code&gt;). The consolidated MCP tools (one per resource noun, action-dispatched — issues, prs, repos, branches, releases, actions, …) are identical across every client; only the config file&amp;rsquo;s location and format differ.&lt;/p&gt;
&lt;p&gt;Every client launches the server the same way — running the &lt;code&gt;madtea&lt;/code&gt; binary with the single argument &lt;code&gt;serve&lt;/code&gt; and talking to it over stdio. The blocks below differ only in how each client spells that out.&lt;/p&gt;</description></item><item><title>Raw API passthrough</title><link>https://madtea.lol/docs/guides/raw-api/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://madtea.lol/docs/guides/raw-api/</guid><description>&lt;p&gt;&lt;code&gt;madtea api&lt;/code&gt; makes a raw call against the forge&amp;rsquo;s REST API and prints the
response. It is the &lt;strong&gt;last-resort escape hatch&lt;/strong&gt;: prefer a first-class command
(&lt;code&gt;issue list&lt;/code&gt;, &lt;code&gt;pr create&lt;/code&gt;, &lt;code&gt;labels set&lt;/code&gt;, …) every time, because those carry
the safety, confirmation, and output handling that a raw call does not. Reach
for &lt;code&gt;api&lt;/code&gt; only when no built-in command covers the endpoint you need — and when
that happens, it&amp;rsquo;s worth
&lt;a href="https://codeberg.org/sixfold_space/madtea/issues/new"&gt;filing an issue&lt;/a&gt; so the
gap gets a real command.&lt;/p&gt;</description></item><item><title>secret-exec — run a command with your token, never on disk</title><link>https://madtea.lol/docs/guides/secret-exec/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://madtea.lol/docs/guides/secret-exec/</guid><description>&lt;p&gt;&lt;code&gt;madtea secret-exec&lt;/code&gt; runs a child command with your stored Forgejo/Gitea
token injected into its environment. The token is fetched from wherever
madtea already keeps it — your OS keychain, &lt;code&gt;pass&lt;/code&gt;, the &lt;code&gt;MADTEA_TOKEN&lt;/code&gt;
environment variable, or git config — and placed into the child process&amp;rsquo;s
environment under the variable name(s) you choose. It is never printed,
logged, written to a file, or passed as a command-line argument.&lt;/p&gt;
&lt;p&gt;The use case: a deploy script, &lt;code&gt;goreleaser&lt;/code&gt;, &lt;code&gt;curl&lt;/code&gt;, or some other tool
needs the same token madtea uses, but you don&amp;rsquo;t want to copy it into a
shell variable, an &lt;code&gt;.env&lt;/code&gt; file, or your shell history to get it there.&lt;/p&gt;</description></item><item><title>Take a Seat</title><link>https://madtea.lol/docs/guides/install/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://madtea.lol/docs/guides/install/</guid><description>&lt;p&gt;Install madtea on Linux, macOS, or Windows - one self-contained binary, one prerequisite: &lt;code&gt;git&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="linux"&gt;Linux&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# amd64 shown; arm64: swap the arch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl -fsSL https://codeberg.org/sixfold_space/madtea/releases/download/latest/madtea_linux_amd64.tar.gz &lt;span class="p"&gt;|&lt;/span&gt; tar -xz
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;./madtea_linux_amd64/madtea install &lt;span class="c1"&gt;# installs to /usr/local/bin; delete the extracted dir after&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The one-liner trusts TLS alone. Every release ships a GPG-signed &lt;code&gt;checksums.txt&lt;/code&gt;; to verify the tarball before running anything from it, follow &lt;a href="https://madtea.lol/docs/appendices/security/#verifying-release-artifacts"&gt;verifying release artifacts&lt;/a&gt;. (Later updates via &lt;code&gt;madtea update&lt;/code&gt; verify automatically.)&lt;/p&gt;
&lt;h2 id="macos"&gt;macOS&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;brew tap sixfold_space/tap https://codeberg.org/sixfold_space/homebrew-tap.git &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; brew install --cask madtea
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="windows"&gt;Windows&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;scoop bucket add madtea https://codeberg.org/sixfold_space/scoop-bucket &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; scoop install madtea
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="any-os-from-source"&gt;Any OS, from source&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# needs Go&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;go install codeberg.org/sixfold_space/madtea/cmd/madtea@latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Building from a clone instead is covered in &lt;a href="https://codeberg.org/sixfold_space/madtea/src/commit/fab96f47b347af4edbf28328921b96e40fad0a523bd8dc1f72f48ab75a78a71c/README.md#build-madtea-from-source"&gt;Build madtea from source&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Troubleshooting Guide</title><link>https://madtea.lol/docs/guides/troubleshooting/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://madtea.lol/docs/guides/troubleshooting/</guid><description>&lt;p&gt;This guide covers common errors in madtea, their causes, and how to fix them. Error messages are taken directly from the codebase.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="1-configuration-errors"&gt;1. Configuration Errors&lt;/h2&gt;
&lt;h3 id="not-configured---run-madtea-auth-login-first"&gt;&lt;code&gt;not configured - run 'madtea auth login' first&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Cause:&lt;/strong&gt; No Forgejo/Gitea URL or token found in environment variables or git config.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Recovery:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;madtea auth login &lt;span class="c1"&gt;# Interactive setup for this repo&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;madtea auth login --global &lt;span class="c1"&gt;# Store credentials globally&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Or set environment variables:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;MADTEA_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;https://forgejo.example.com
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;MADTEA_TOKEN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;your-token
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="not-configured---run-madtea-auth-login-or-set-madtea_url-and-madtea_token"&gt;&lt;code&gt;not configured - run 'madtea auth login' or set MADTEA_URL and MADTEA_TOKEN&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Cause:&lt;/strong&gt; &lt;code&gt;GetConfig()&lt;/code&gt; found neither env vars nor git config entries. Same fix as above.&lt;/p&gt;</description></item></channel></rss>