CIFR

Getting Started

Getting Started with CIFR

Turn your research paper into a callable, composable agent in under five minutes.

CIFR (Council for Independent Frontier Research) turns research papers into live, callable agents. You submit code and data, CIFR runs it in an isolated container, and the result becomes a citable artifact that other researchers can invoke with fresh inputs, compose into pipelines, and verify independently.

This guide walks you through publishing your first agent.

What you need

  • A web browser.
  • Your research code in a GitHub repository (or a zip file).
  • Five minutes.

CIFR is free for academics. The public preview accepts anonymous submissions, but signing in with GitHub or ORCID gives you a profile and the ability to manage your agents.

Step 1 -- Go to cifr.org.in and click "Submit Agent"

Open the CIFR dashboard and click Submit agent. You will see a form with fields for your agent's title, a short description of what it does, and a source input.

Step 2 -- Paste a GitHub URL or upload a zip

Under Source type, pick git URL and paste the URL of your repository. CIFR will clone it. Alternatively, select Upload and drag in a zip file containing your code and data.

Your repository should contain everything needed to run: source code, any small data files, and a dependency file (requirements.txt, pyproject.toml, or environment.yml). CIFR builds a container from your dependencies automatically -- you do not need to write a Dockerfile.

Step 3 -- Add a cifr.yml

Create a file called cifr.yml in the root of your repository. This is the agent contract -- a small YAML file that tells CIFR what your code does, what it takes as input, and what it produces.

Here is the minimal contract (about 15 lines):

agent:
  name: my-wavelet-detector
  version: 1.0.0
  description: Detect transient events in power system waveforms using a wavelet transform.
  invoke: python detect.py
  inputs:
    - name: waveform
      format: application/json
      description: Time-series voltage/current samples.
  outputs:
    - name: events
      format: application/json
      description: Detected event timestamps and classifications.

The fields:

  • name -- a short, kebab-case identifier (lowercase letters, digits, hyphens).
  • version -- semver (1.0.0). Immutable once published; bump to release an update.
  • description -- one or two sentences explaining what the agent does.
  • invoke -- the shell command CIFR runs inside the container. Your code reads inputs from /inputs/ and writes outputs to /outputs/.
  • inputs and outputs -- declared data fields with names and MIME-type formats.

See the full cifr.yml reference for every available field.

Step 4 -- Watch the build and run in real time

Click Submit & Run. CIFR will:

  1. Clone your repo (or unzip your upload).
  2. Detect your dependencies and build a Docker image.
  3. Run your code in an isolated container with no network access.
  4. Capture everything written to /outputs/ as artifacts.

You will land on a run detail page with a dark, terminal-style log viewer that streams output live. No page refresh needed. When the status badge changes from amber running to green completed, the run is done.

If the run fails, the logs show you exactly what happened -- the full stdout and stderr from your code, plus the exit code.

Step 5 -- Your agent is live

Once the canonical run succeeds, CIFR registers your code as an agent. You now have:

  • A stable identifier that other researchers can cite and invoke.
  • A REST endpoint at POST /api/agents/{id}/invoke_json for programmatic access.
  • An MCP tool that AI assistants can call directly.
  • A provenance hash computed over the image digest, input bytes, and output bytes -- cryptographic proof of reproducibility.

If you added an RAI (Research Agent Identifier) and a paper: block to your contract, your agent is linked to your publication and can be cited by other papers. See Research Agent Identifiers for the format.

Share your agent's RAI with collaborators. They can invoke it with their own data, compose it into their own agents, or run community challenge benchmarks against it.

What happens next

  • Trust badges. Every agent that builds and runs earns a Bronze trust badge automatically. Declare benchmarks in your cifr.yml to earn Silver (verified performance claims). Community testing can earn Gold. See Trust & Verification.
  • Benchmarks. Add a benchmarks: block to your contract declaring your agent's performance on known datasets. CIFR verifies these automatically.
  • Composition. Other agents can list yours in their depends_on: and CIFR will call your agent as part of their execution pipeline. See Composition runtime.
  • Citations. When another paper invokes your agent, the provenance hash covers both their work and yours -- transitive, verifiable attribution.

Where to go next