Skip to main content

Quick start in the app

This quick start takes you from an empty Artemis Desktop to a measured improvement on a real Python project, using the app. It uses quickstart, a small Python project of deliberately slow functions with tests and a ready-made benchmark, and the Discover workflow: Artemis generates alternative implementations, runs each one on your Runner, and compares the results with the Baseline. To have your own coding agent do it, see Quick start with a coding agent.

Before you start​

  • Install Artemis Desktop.
  • Set up your model and check that the indicator beside Models is green.
  • Choose a project. This page uses quickstart, a small Python project made for trying Discovery with a local model, but you can use one of the Example projects or any project you like. For another project, use its own install, test and benchmark commands in place of the quickstart's.

1. Import the project​

For this quick start, import artemisTurintech/quickstart from GitHub, the first tab below, using a fork or an existing repository you have access to. The other tabs show the other ways to bring code in.

Use this for a repository you own or have access to.

If you have not already, fork artemisTurintech/quickstart to your GitHub account, so that you can import it and open Pull Requests on it. Skip this to import an existing repository you have access to.

Then follow Connect a Git repository to import it. For the GitHub App and access tokens, see Git Integration.

2. Connect a Runner​

Discover runs every Version of the code on a Runner. Set one up on your machine:

  1. Open Platform Settings → Runners and click New Artemis runner.
  2. Choose your OS and architecture, then follow the generated commands to download, configure and start the Runner.
  3. In the Project, open Project Settings → Runner and Scripts and select the Runner from the Runner dropdown.

The Runner and your model server share the same CPU, GPU and memory if they run on the same machine.

3. Create a Script​

A Script tells the Runner how to check, test and measure the code. The quickstart project's README lists these commands.

In Project Settings → Runner and Scripts, click New script, name it benchmark, and add:

PhaseCommand
Setuppython -m py_compile slow.py
Setuppython test_slow.py
Benchmarkpython benchmark.py

test_slow.py checks each function in slow.py against a reference implementation. The benchmark times each function and writes the results to artemis_results.json: one metric per function, such as fib_ms and find_duplicates_ms, plus their sum, total_ms. Artemis also records runtime, CPU and memory. See Metrics.

Set it as the Default and click Run to check that it passes on your Runner.

4. Start a Discovery Run​

  1. Open Discover in the Project sidebar.
  2. Describe the Objective, for example: Reduce total_ms by speeding up the functions in slow.py without changing their results. All tests must keep passing.
  3. Choose the Branch to start from and submit.

Setup then walks you through the run:

StepWhat to choose
Objective & settingsYour local model, for example Local/Qwen3-Coder-30B-A3B, as the Orchestrator model and for the LLM-council. Automatic approval, and a small Number of versions, such as 5, for a first run.
EvaluationYour Runner and the benchmark Script. The Script runs once on the Baseline before you can go on.
Metricstotal_ms with Lower is better. The per-function metrics, such as fib_ms, are also Lower is better.
SummaryCheck the settings and start the run.

Starting the run measures the Baseline and then begins generating Versions. With a local model, each Version can take a while.

5. Evaluate the Version and push it to your repository​

Evaluate. Open the run's Overview to see the agent's notes and the current Best version. In Versions, compare each Version's scores and diff with the Baseline: how much each metric changed, whether all tests still pass, and what the code change does. See Versions.

Push upstream. When a Version is worth keeping, click Create PR to open its Branch. From the Branch you can either:

  • publish it as a Git branch on your repository, or
  • open a Pull Request from it, so the change can be reviewed before it is merged.

Your repository is not changed until you publish the Branch or open the Pull Request. To push to a repository that belongs to someone else, such as artemisTurintech/quickstart, import your fork of it. A Project uploaded as a .zip file has no repository to push to, so review the Branch's changes in Artemis instead.

Next steps​

  • Try Discovery on another project from Example projects.
  • Run Discovery on a single function in slow.py, for example to reduce primes_up_to_ms.
  • For your own project, Project Settings → Metrics → Add metrics can prepare a benchmark that records custom metrics. See Metrics.
  • Learn how runs are scored in Metrics, and how to read the Experiments canvas.
  • See Workflows for everything else you can do in Artemis Desktop.