<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>ApiVault CLI Changelog</title>
    <link>https://apivault.tech/changelog?product=cli</link>
    <description>Recent updates, release notes, and version history for the ApiVault CLI.</description>
    <language>en-US</language>
    <lastBuildDate>Wed, 04 Nov 2026 03:00:53 GMT</lastBuildDate>
    <atom:link href="https://apivault.tech/changelog/rss.xml?product=cli" rel="self" type="application/rss+xml" />
    
    <item>
      <title>The CLI repository moved to ApiVault-tech (v1.7.3)</title>
      <link>https://apivault.tech/changelog/cli-repository-moved-to-apivault-tech</link>
      <guid isPermaLink="true">https://apivault.tech/changelog/cli-repository-moved-to-apivault-tech</guid>
      <pubDate>Sat, 31 Oct 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[<p>The CLI source repository moved to <a href="https://github.com/ApiVault-tech/apivault">ApiVault-tech/apivault</a>. The repository, homepage, and issue tracker links in npm metadata and the README now point there.</p>
<p>See the <a href="https://apivault.tech/docs/cli">CLI documentation</a> for installation and commands.</p>]]></description>
      <category>CLI</category>
    </item>

    <item>
      <title>CLI help now lists the service and integration log sources (v1.7.2)</title>
      <link>https://apivault.tech/changelog/cli-log-source-help-lists-service-and-integration</link>
      <guid isPermaLink="true">https://apivault.tech/changelog/cli-log-source-help-lists-service-and-integration</guid>
      <pubDate>Wed, 16 Sep 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[<p>The help for <code>apivault logs --source</code> now lists two more sources: <code>service</code> for service token requests, and <code>integration</code> for syncs and cleanup that the Vercel and Supabase integrations run on their own.</p>
<pre><code>apivault logs --source integration</code></pre>
<p>Learn more in the <a href="https://apivault.tech/docs/cli/logs"><code>logs</code> command reference</a>.</p>]]></description>
      <category>CLI</category>
    </item>

    <item>
      <title>Run the CLI unattended with a service token (v1.7.1)</title>
      <link>https://apivault.tech/changelog/run-the-cli-unattended-with-a-service-token</link>
      <guid isPermaLink="true">https://apivault.tech/changelog/run-the-cli-unattended-with-a-service-token</guid>
      <pubDate>Mon, 14 Sep 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[<p>The CLI now runs in CI under a service token with no configuration of its own, and no command waits on a prompt when there is no terminal.</p>
<p><code>apivault run</code> and <code>apivault env export</code> now use the token's environment pin when you don't pass <code>--env</code>:</p>
<pre><code>APIVAULT_TOKEN=av_live_... apivault run -- npm run build</code></pre>
<p>Previously they sent the environment from your local config, which a pinned token refused, and they failed outright in a fresh container with no config. An explicit <code>--env</code> still wins, so a mismatch shows up as an error.</p>
<h3>Commands no longer hang</h3>
<ul><li><strong><code>keys add</code>:</strong> reports missing values by flag name instead of prompting, and <code>--environment</code> falls back to the token's pin.</li><li><strong><code>keys delete</code>:</strong> without <code>-f</code>, it refuses and names the flag. Deleting can't be undone, so an absent human doesn't count as agreement.</li><li><strong><code>keys update</code>:</strong> prompts for every field, so it now says it needs a terminal.</li><li><strong>Custom vault keys:</strong> a command that can't prompt for one points you to <code>--vault-key</code> and <code>APIVAULT_KEY</code>.</li></ul>
<h3>Clearer service token errors</h3>
<ul><li>A rejected token no longer suggests <code>apivault login</code>. An unrecognized <code>APIVAULT_TOKEN</code> says the value didn't match a token, which usually means a truncated copy or a secret set on the wrong repository.</li><li><code>apivault projects list</code> and <code>apivault logs</code> now refuse up front under a service token.</li><li><code>apivault whoami</code> always states the token's reach: <code>Production only</code> for a pinned token, or <code>All environments</code>.</li></ul>
<p>The README now covers headless use, including GitHub Actions and Docker examples. Learn more in the <a href="https://apivault.tech/docs/ci-cd">CI/CD documentation</a>.</p>]]></description>
      <category>CLI</category>
    </item>

    <item>
      <title>Authenticate the CLI in CI with APIVAULT_TOKEN (v1.7.0)</title>
      <link>https://apivault.tech/changelog/authenticate-the-cli-with-apivault-token</link>
      <guid isPermaLink="true">https://apivault.tech/changelog/authenticate-the-cli-with-apivault-token</guid>
      <pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[<p>Set <code>APIVAULT_TOKEN</code> and every CLI command authenticates as that service token, ahead of any device token in <code>~/.apivault/token.json</code>. Combined with <code>APIVAULT_KEY</code>, this lets <code>apivault run</code> work unattended in CI:</p>
<pre><code>APIVAULT_TOKEN=av_live_... apivault run -- npm run build</code></pre>
<p>Two commands also change while the variable is set:</p>
<ul><li><strong><code>apivault whoami</code></strong> reports the token's name, project, scopes, and environment pin, so a pipeline can check which credential it picked up.</li><li><strong><code>apivault login</code> and <code>apivault logout</code></strong> refuse to run and explain why. Login would otherwise write a device token the next command ignored, and logout would clear one the caller never asked to sign out.</li></ul>
<p>Learn more in the <a href="https://apivault.tech/docs/ci-cd">CI/CD documentation</a>.</p>]]></description>
      <category>CLI</category>
    </item>

    <item>
      <title>View and stream project logs from the terminal (v1.6.0)</title>
      <link>https://apivault.tech/changelog/view-and-stream-project-logs-from-the-cli</link>
      <guid isPermaLink="true">https://apivault.tech/changelog/view-and-stream-project-logs-from-the-cli</guid>
      <pubDate>Fri, 11 Sep 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[<p>The new <code>apivault logs</code> command shows a project's audit and request logs in your terminal.</p>
<pre><code>apivault logs</code></pre>
<p>The default view is a table with the time, status, HTTP method, endpoint, source, actor, duration, and event. To stream new CLI events:</p>
<pre><code>apivault logs --follow --source cli</code></pre>
<p>Illustrative stream output with demo identities, key IDs, times, and durations:</p>
<pre><code>[14:05:12] 200 POST /api/keys cli 24ms [KEY_CREATED] (developer@example.com)
[14:05:18] 200 DELETE /api/keys/demo-key cli 18ms [KEY_DELETED] (developer@example.com)</code></pre>
<p>Use <strong>Ctrl+C</strong> to stop following. To narrow the list or inspect one entry:</p>
<pre><code>apivault logs --status error --source mcp
apivault logs --method POST --search &quot;/api/keys&quot;
apivault logs get &lt;log-id&gt;</code></pre>
<p>Inspection shows the entry's user agent, IP address, and details payload. Pass <code>--json</code> for machine-readable output, or use event, user, key, and date filters described in the command reference.</p>
<p>Log endpoints can also now resolve a project by ID or slug.</p>
<p>Learn more in the <a href="https://apivault.tech/docs/cli/logs"><code>logs</code> command reference</a>.</p>]]></description>
      <category>CLI</category>
    </item>

    <item>
      <title>The CLI now warns you before your token expires (v1.5.0)</title>
      <link>https://apivault.tech/changelog/cli-warns-before-tokens-expire</link>
      <guid isPermaLink="true">https://apivault.tech/changelog/cli-warns-before-tokens-expire</guid>
      <pubDate>Thu, 10 Sep 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[<p><code>apivault login</code> now records and prints the date your device token expires, matching the 90-day lifetime the server applies to newly approved CLI connections.</p>
<p><code>apivault whoami</code> shows that date and highlights it in yellow with a renewal reminder once fewer than 14 days remain. <code>apivault --json whoami</code> adds a <code>tokenExpiresAt</code> field.</p>
<h3>Clearer errors</h3>
<ul><li><strong>Rejected requests:</strong> an expired token reports the date it lapsed, and a missing or revoked one says so.</li><li><strong>Rate limits:</strong> wrong vault keys are throttled by the server, so <code>keys get --reveal</code>, <code>keys add</code>, <code>env export</code>, and <code>run</code> now tell you how long to wait, such as &quot;try again in 7m&quot;.</li><li><strong>No arguments:</strong> running <code>apivault</code> alone distinguishes an expired token from being signed out.</li></ul>
<h3>Fixes</h3>
<ul><li><code>--project</code> and <code>apivault projects use</code> now accept a project slug as well as an ID.</li><li>The CLI's local key masking now matches the web app's, so a locally masked value and a server preview can't render differently.</li></ul>
<p>Learn more in the <a href="https://apivault.tech/docs/cli/login"><code>login</code> command reference</a>.</p>]]></description>
      <category>CLI</category>
    </item>

    <item>
      <title>Link a directory to a project with .apivault.json (v1.4.0)</title>
      <link>https://apivault.tech/changelog/link-a-directory-to-a-project</link>
      <guid isPermaLink="true">https://apivault.tech/changelog/link-a-directory-to-a-project</guid>
      <pubDate>Sun, 06 Sep 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[<p>You can now save a project binding, default run command, environment, and vault key in an <code>.apivault.json</code> file in your project root. The CLI uses it whenever you work in that directory.</p>
<pre><code># Link the current directory to a project
apivault link &lt;id&gt;

# See the active project and where it came from
apivault projects current

# Remove the link
apivault unlink</code></pre>
<p><code>apivault projects use &lt;id&gt;</code> now links the current directory by default. Pass <code>--global</code> to set a system-wide default instead.</p>
<h3>Config scopes</h3>
<p>All <code>apivault config</code> commands now accept <code>--local</code> (<code>-l</code>) and <code>--global</code> (<code>-g</code>). Local settings take precedence over global ones.</p>
<p>A minimal project file can hold the project binding and run defaults without storing credentials. Replace <code>your-project-id</code> with the ID from <code>apivault projects list</code>:</p>
<pre><code>{
  &quot;project&quot;: &quot;your-project-id&quot;,
  &quot;run&quot;: {
    &quot;env&quot;: &quot;Development&quot;,
    &quot;command&quot;: &quot;npm run dev&quot;
  }
}</code></pre>
<blockquote><strong>Warning:</strong> Check this file before committing it. A <code>vaultKey</code> field contains a secret. If you store one locally, add the file to <code>.gitignore</code>; otherwise keep it out of the repository and supply the vault key through the prompt, <code>APIVAULT_KEY</code>, or global configuration. <code>apivault config set vaultKey</code> can write to the local file when one exists.</blockquote>
<p>Learn more in the <a href="https://apivault.tech/docs/cli/project-linking">project linking guide</a>.</p>]]></description>
      <category>CLI</category>
    </item>

    <item>
      <title>Revealing a key from the CLI now takes one request (v1.3.2)</title>
      <link>https://apivault.tech/changelog/cli-key-reveal-takes-one-request</link>
      <guid isPermaLink="true">https://apivault.tech/changelog/cli-key-reveal-takes-one-request</guid>
      <pubDate>Sat, 29 Aug 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[<p><code>apivault keys get &lt;key-id&gt; --reveal</code> now retrieves key metadata and the decrypted value in one API request. Previously, it made a separate request for the metadata.</p>
<p>Learn more in the <a href="https://apivault.tech/docs/cli/keys"><code>keys</code> command reference</a>.</p>]]></description>
      <category>CLI</category>
    </item>

    <item>
      <title>CLI key commands now fetch only the key they need (v1.3.1)</title>
      <link>https://apivault.tech/changelog/cli-key-commands-fetch-one-key</link>
      <guid isPermaLink="true">https://apivault.tech/changelog/cli-key-commands-fetch-one-key</guid>
      <pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[<p><code>apivault keys get</code>, <code>apivault keys update</code>, and <code>apivault keys delete</code> now fetch the specific key from <code>GET /api/keys/[id]</code>, rather than downloading your full key list.</p>
<p>Learn more in the <a href="https://apivault.tech/docs/cli/keys"><code>keys</code> command reference</a>.</p>]]></description>
      <category>CLI</category>
    </item>

    <item>
      <title>Work across multiple projects from the CLI (v1.3.0)</title>
      <link>https://apivault.tech/changelog/work-across-projects-from-the-cli</link>
      <guid isPermaLink="true">https://apivault.tech/changelog/work-across-projects-from-the-cli</guid>
      <pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[<p>The CLI now works with accounts that have more than one project.</p>
<pre><code># List your projects
apivault projects list

# Set the default project
apivault projects use &lt;project-id&gt;

# Override it for one command
apivault run -p &lt;project-id&gt; -- npm start</code></pre>
<p>Every command accepts the global <code>-p, --project &lt;id&gt;</code> flag, and key management, <code>run</code>, and <code>env</code> commands all use the active project.</p>
<p>To bind a repository to a project, add an <code>.apivaultrc</code> or <code>apivault.json</code> file containing the project ID.</p>
<p>Learn more in the <a href="https://apivault.tech/docs/cli/projects"><code>projects</code> command reference</a>.</p>]]></description>
      <category>CLI</category>
    </item>

    <item>
      <title>The CLI now connects to apivault.tech by default (v0.1.3)</title>
      <link>https://apivault.tech/changelog/cli-connects-to-apivault-tech</link>
      <guid isPermaLink="true">https://apivault.tech/changelog/cli-connects-to-apivault-tech</guid>
      <pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[<p>The CLI's built-in API URL is now <code>https://apivault.tech</code>. To install this release:</p>
<pre><code>npm install -g apivault@0.1.3</code></pre>
<p>The standalone scripts also moved to <a href="https://apivault.tech/install.sh">install.sh</a> and <a href="https://apivault.tech/install.ps1">install.ps1</a>. Those URLs install the current version rather than a fixed historical release.</p>
<p>Learn more in the <a href="https://apivault.tech/docs/cli">installation guide</a>.</p>]]></description>
      <category>CLI</category>
    </item>

    <item>
      <title>CLI prompts now say vault key (v0.1.2)</title>
      <link>https://apivault.tech/changelog/cli-prompts-say-vault-key</link>
      <guid isPermaLink="true">https://apivault.tech/changelog/cli-prompts-say-vault-key</guid>
      <pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[<p>CLI prompts and option descriptions now say &quot;vault key&quot; instead of &quot;passphrase&quot;.</p>
<p><code>apivault --version</code> now reads the version from <code>package.json</code>. To inspect this release:</p>
<pre><code>npm install -g apivault@0.1.2
apivault --version</code></pre>
<p>Learn more in the <a href="https://apivault.tech/docs/cli">CLI documentation</a>.</p>]]></description>
      <category>CLI</category>
    </item>

    <item>
      <title>The CLI README now shows the correct license badge (v0.1.1)</title>
      <link>https://apivault.tech/changelog/cli-readme-license-badge-fixed</link>
      <guid isPermaLink="true">https://apivault.tech/changelog/cli-readme-license-badge-fixed</guid>
      <pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[<p>This patch corrects the license badge in the CLI README. Commands and runtime behavior are unchanged.</p>
<p>See the <a href="https://apivault.tech/docs/cli">CLI documentation</a> for installation and commands.</p>]]></description>
      <category>CLI</category>
    </item>

    <item>
      <title>Run apps with your secrets from the terminal (v0.1.0)</title>
      <link>https://apivault.tech/changelog/initial-cli-release</link>
      <guid isPermaLink="true">https://apivault.tech/changelog/initial-cli-release</guid>
      <pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[<figure><img src="https://apivault.tech/apivault-cli.png" alt="ApiVault CLI terminal interface and command execution" /><figcaption>Run a process with API keys supplied as environment variables</figcaption></figure>
<p>The first release of the <code>apivault</code> CLI runs your application with secrets injected directly into its process environment, without writing a plaintext <code>.env</code> file to disk.</p>
<pre><code>npm install -g apivault@0.1.0
apivault login
apivault run -- npm run dev</code></pre>
<blockquote><strong>Note:</strong> This example installs the original release, which used the previous API domain. CLI v0.1.3 <a href="https://apivault.tech/changelog/cli-connects-to-apivault-tech">changed the default to apivault.tech</a>. For current setup instructions, see the <a href="https://apivault.tech/docs/cli">installation guide</a>.</blockquote>
<h3>Core features</h3>
<ul><li><strong>Key management:</strong> <code>apivault keys list</code>, <code>add</code>, <code>get</code>, <code>update</code>, and <code>delete</code>.</li><li><strong>Environment exports:</strong> <code>apivault env export</code> and <code>apivault env restore</code> when local <code>.env</code> files are explicitly needed.</li><li><strong>Local configuration:</strong> <code>apivault config get</code>, <code>set</code>, and <code>list</code> for defaults in <code>~/.apivault/config.json</code>.</li><li><strong>Custom vault keys:</strong> supply a vault key for encrypted vaults that require one.</li></ul>
<p><code>apivault run</code> passes values to the child process without creating a plaintext <code>.env</code> file. The <code>env export</code> command explicitly writes an environment file; the child process can also write the values it receives.</p>
<p>Authentication tokens are stored in <code>~/.apivault/token.json</code>, with <code>0600</code> permissions on Unix-like systems.</p>
<p>Learn more in the <a href="https://apivault.tech/docs/cli">CLI documentation</a>.</p>]]></description>
      <category>CLI</category>
    </item>
  </channel>
</rss>