<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Pages on CodeInstances.com</title>
    <link>https://codeinstances.com/pages/</link>
    <description>Recent content in Pages on CodeInstances.com</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <atom:link href="https://codeinstances.com/pages/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>About</title>
      <link>https://codeinstances.com/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://codeinstances.com/about/</guid>
      <description>&lt;p&gt;CodeInstances keeps runs of programs as instances and replays them. It&amp;rsquo;s an open source project under the Apache License 2.0, made by &lt;a href=&#34;https://softdevstudio.com&#34;&gt;SoftDevStudio.com&lt;/a&gt;. The code is on &lt;a href=&#34;https://github.com/codeinstances/codeinstances&#34;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The current release is v0.7.0, the seventh one. It&amp;rsquo;s early. What it does, it does well and it&amp;rsquo;s tested, and the &lt;a href=&#34;https://codeinstances.com/reference/&#34;&gt;reference&lt;/a&gt; lists plainly what it can&amp;rsquo;t do yet.&lt;/p&gt;&#xA;&lt;h2 id=&#34;why-the-project-exists&#34;&gt;Why the Project Exists&lt;/h2&gt;&#xA;&lt;p&gt;Code gets a lot of care. It sits in version control, it&amp;rsquo;s reviewed, tagged, released and kept for years. Runs get none. A program runs, talks to a few servers, prints something and exits, and the run is gone. If it failed, you have a log line and a guess.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Contact</title>
      <link>https://codeinstances.com/contact/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://codeinstances.com/contact/</guid>
      <description>&lt;p&gt;The project would like to hear from:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Developers&lt;/strong&gt; who tried CodeInstances and hit something it didn&amp;rsquo;t capture or replay the way they expected.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Teams&lt;/strong&gt; with flaky tests, hard-to-reproduce failures or AI agents whose runs they&amp;rsquo;d like to keep.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Anyone&lt;/strong&gt; with a question about the tool, the instance format or the numbers on this site.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Write to &lt;strong&gt;&lt;a href=&#34;mailto:info@codeinstances.com&#34;&gt;info@codeinstances.com&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;For a bug, it helps to mention your system, the CodeInstances version (&lt;code&gt;codeinstances version&lt;/code&gt; prints it), the language and HTTP client of the program you recorded, and what the replay report said. An instance file that shows the problem is the best bug report of all, once you&amp;rsquo;ve checked it holds nothing private.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Download</title>
      <link>https://codeinstances.com/download/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://codeinstances.com/download/</guid>
      <description>&lt;p&gt;CodeInstances is a single static binary with no dependencies. Pick the archive for your system. These links always fetch the latest release, which is v0.7.0 right now.&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;System&lt;/th&gt;&#xA;          &lt;th&gt;Archive&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Linux, x86-64&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://github.com/codeinstances/codeinstances/releases/latest/download/codeinstances_linux_amd64.tar.gz&#34;&gt;codeinstances_linux_amd64.tar.gz&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Linux, ARM64&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://github.com/codeinstances/codeinstances/releases/latest/download/codeinstances_linux_arm64.tar.gz&#34;&gt;codeinstances_linux_arm64.tar.gz&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;macOS, Apple silicon&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://github.com/codeinstances/codeinstances/releases/latest/download/codeinstances_darwin_arm64.tar.gz&#34;&gt;codeinstances_darwin_arm64.tar.gz&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;macOS, Intel&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://github.com/codeinstances/codeinstances/releases/latest/download/codeinstances_darwin_amd64.tar.gz&#34;&gt;codeinstances_darwin_amd64.tar.gz&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Windows, x86-64&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://github.com/codeinstances/codeinstances/releases/latest/download/codeinstances_windows_amd64.zip&#34;&gt;codeinstances_windows_amd64.zip&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;Each archive holds two programs: &lt;code&gt;codeinstances&lt;/code&gt; itself, and &lt;code&gt;codeinstances-demo&lt;/code&gt;, the self-checking demo described in &lt;a href=&#34;https://codeinstances.com/how-codeinstances-was-tested-before-its-first-release/&#34;&gt;how it was tested&lt;/a&gt;. The license files come with them.&lt;/p&gt;&#xA;&lt;h2 id=&#34;check-the-download&#34;&gt;Check the Download&lt;/h2&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://github.com/codeinstances/codeinstances/releases/latest&#34;&gt;release page&lt;/a&gt; has a SHA256SUMS file with a checksum for every archive. On Linux or macOS:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Quick Start</title>
      <link>https://codeinstances.com/quick-start/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://codeinstances.com/quick-start/</guid>
      <description>&lt;p&gt;This takes a couple of minutes. You need the &lt;code&gt;codeinstances&lt;/code&gt; binary from the &lt;a href=&#34;https://codeinstances.com/download/&#34;&gt;download page&lt;/a&gt; and any program that talks to the network. The examples use a Python script, but the language doesn&amp;rsquo;t matter.&lt;/p&gt;&#xA;&lt;h2 id=&#34;1-record-a-run&#34;&gt;1. Record a Run&lt;/h2&gt;&#xA;&lt;p&gt;Put &lt;code&gt;codeinstances record&lt;/code&gt; and &lt;code&gt;--&lt;/code&gt; in front of the command you&amp;rsquo;d normally type:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;codeinstances record -o weather.instance -- python3 fetch_weather.py&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The program runs as usual and its output passes through. When it exits, the run is kept in &lt;code&gt;weather.instance&lt;/code&gt;: the command, what it printed, how it ended, and every HTTP and HTTPS request it made with the answer it got. &lt;code&gt;record&lt;/code&gt; exits with the program&amp;rsquo;s own exit code, so it drops into scripts and CI without changing anything around it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reference</title>
      <link>https://codeinstances.com/reference/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://codeinstances.com/reference/</guid>
      <description>&lt;p&gt;Every command, flag and limit in CodeInstances v0.7.0. For a first run, the &lt;a href=&#34;https://codeinstances.com/quick-start/&#34;&gt;quick start&lt;/a&gt; is shorter.&lt;/p&gt;&#xA;&lt;h2 id=&#34;commands&#34;&gt;Commands&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Command&lt;/th&gt;&#xA;          &lt;th&gt;What it does&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;codeinstances record [flags] -- command [args...]&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Run the command and keep the run as an instance file&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;codeinstances replay [flags] file [-- command [args...]]&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Run the recorded command again, or the one given, with the network replaced by the recording, and compare&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;codeinstances diff [flags] a b&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Compare two instances: how they ended, their output, their calls and values, and their speed&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;codeinstances shrink [flags] -pass passing failing [-- command]&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Find the fewest of the failing run&amp;rsquo;s answers that keep the failure, and keep that instance&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;codeinstances test [flags] file-or-dir... [-- command]&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Replay instances as regression tests&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;codeinstances group [flags] file-or-dir...&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Fingerprint failing runs and group the ones that fail the same way&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;codeinstances serve [flags]&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Run a store that keeps instances under their ids&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;codeinstances push [-to url] file-or-dir...&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Upload instances to a store&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;codeinstances pull [-from url] [-o file] id&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Download an instance by id or unique prefix&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;codeinstances report [-url store] file&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Write a Markdown bug report for an instance&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;codeinstances fork [flags] -at N parent [-- command]&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Run on from a step: the parent&amp;rsquo;s answers before it, then live, offline or given&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;codeinstances keygen [-o name] [-label text]&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Make a key pair for signing: &lt;code&gt;name.key&lt;/code&gt; and &lt;code&gt;name.pub&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;codeinstances sign -key file.key [-signer name] [-o out] file&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Sign an instance, in place unless &lt;code&gt;-o&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;codeinstances show [-json] file&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Describe an instance, or print it whole as JSON&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;codeinstances verify [-trust keys] file...&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Check files haven&amp;rsquo;t been changed since they were recorded or signed, and with &lt;code&gt;-trust&lt;/code&gt; that a key you trust signed them&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;codeinstances version [-json]&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;The version, the format version and the commit it was built from&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;Exit codes: &lt;code&gt;record&lt;/code&gt; and &lt;code&gt;fork&lt;/code&gt; exit as the program did. &lt;code&gt;replay&lt;/code&gt; exits 0 when the run matched and 1 when it diverged. &lt;code&gt;diff&lt;/code&gt; exits 0 when the runs are the same and 1 when they differ. &lt;code&gt;shrink&lt;/code&gt; exits 0 when it kept an instance and 1 when the failure couldn&amp;rsquo;t be narrowed down. &lt;code&gt;test&lt;/code&gt; exits 0 when every test passed and 1 when any failed. &lt;code&gt;group&lt;/code&gt;, &lt;code&gt;report&lt;/code&gt;, &lt;code&gt;push&lt;/code&gt; and &lt;code&gt;pull&lt;/code&gt; exit 0 when they worked. &lt;code&gt;verify&lt;/code&gt; exits 1 for an edited file, a signature that doesn&amp;rsquo;t check out or, with &lt;code&gt;-trust&lt;/code&gt;, no signature by a trusted key. Anything else is 2 on a usage or file error.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
