Get our Avatarnorge Agent Kit for free, the same one we use for our clients. An agent that remembers, calls real tools and runs on your own API key, with a playground on your machine where you watch it work. Not a demo and not a subscription: you download it and it is yours.
# four commands and it is running python -m venv .venv pip install -r requirements.txt copy .env.example .env python serve.py → your agent is at http://localhost:8000
Nothing to sign up for and nothing to connect. It runs on your machine from the first minute, and you can read every line of it.
Leave your name and an email and the zip lands in your inbox. Unzip it wherever you keep your projects.
Four commands in a terminal, and one API key pasted into a text file. Open localhost:8000 and you are already talking to it.
Open the folder with Claude, ChatGPT, Codex or Cursor and tell it what you want your agent to do. The kit ships with the file those assistants read, so it arrives knowing where everything is.
Rewrite who the agent is, add the tools that reach your own data, and run the tests. You edit, you save, and the next message already behaves differently.
It talks, it remembers who it is talking to, and it can call tools: look something up, check an order, read your data. It comes with a local playground so you can watch it work instead of taking anyone's word for it.
The conversation is stored and carried into every call, so it knows what was said three messages ago. SQLite on your machine, Postgres when it is time.
A tool is a normal Python function it can decide to call. One comes wired in and it is real: ask what the weather is like in any city and it goes out and gets it.
Claude, OpenAI or Gemini, switched from a dropdown while it is running. One key from one of them is enough to start.
It runs in your browser, on your machine, and it behaves like a real inbox.
People do not write one tidy paragraph. They write "hi", then "quick question", then "about the price". It waits 2.5 seconds of silence, joins them, and answers once.
With a typing indicator and a pause between them, instead of dropping a wall of text on somebody.
Which is how you find out whether your agent can actually read a screenshot or a picture of a damaged product.
Model, tokens and which tools it called, under every answer. Your agent is told never to name its tools, so that line is the only way to tell an answer that went and looked something up from one the model wrote out of its own head.
The list is asked from the provider rather than written by hand, so a model released this morning is in the dropdown this morning.
The system prompt sits next to the chat. Edit it, save, and the very next message already behaves differently. Nothing restarts.
Talking is the easy part. Tools are what let your agent check an order, look up what is available, read your price list or open a ticket, instead of guessing. They all live in one file, and this is what one looks like.
@tool def weather(place: str) -> str: """Tells you the weather right now in a city. Use it when you are asked about the weather, the temperature, whether it is raining, whether it is cold or warm. Args: place: The city, ideally with the country. """ # your code: call an API, query your database, read a file
That green text is not documentation for you. It is the only thing the model reads to decide whether to call this tool and what to send it. Write it vague and you get an agent that calls the wrong thing at the wrong moment.
At the bottom of the file there is a list of the tools the agent can see. A function that is not on it does not exist for the agent, and taking one off the list is how you retire it without deleting anything.
Ask your agent what the weather is like in any city and it goes out and comes back with today's numbers. It needs no account and no key of its own, so a tool works the first time you run the kit. Read it, then delete it.
The framework moves messages around. What your agent actually does, how it sounds and how well it does its job, all comes out of one text file. You edit it in the playground, you save, and the very next message already behaves differently.
# Role Who it is. Identity, tone, language. # Task The job. What it is there to get done. # Tools When to reach for each one, and when not to. # Context Your business. Hours, prices, rules, whatever it needs to know. # Examples Real questions with the answer you want, word for word. # Response format How long, how many messages, what it never writes. # Hard rules The lines it does not cross. Last, because last carries weight.
The same skeleton works for every agent, whatever the job. Only the content changes from one to the next, so once you have written one you can write the next in an afternoon.
"If they ask for a price you do not have, answer like this: ..." is worth more than three paragraphs describing the tone you want. Show it the answer instead of describing it.
It runs from the general to the non negotiable, because the last thing a model reads carries more weight than the first. That is why the hard rules sit at the bottom.
One thing to install, one key, and the AI assistant you already use. Nothing to sign up for on our side, and nothing to connect.
Version 3.11 or newer, free from python.org. On Windows, tick "Add python.exe to PATH" on the first screen of the installer and you are done with it.
From Claude, OpenAI or Gemini, whichever you already use. One is enough, and you switch between them later from a dropdown. The agent runs on your key, so what it spends lands on your account and not on ours.
Claude, ChatGPT, Codex, Cursor, whichever you use. The kit ships with the file those assistants read before touching a project, so it arrives already knowing the map: which file holds the personality, where the tools list lives, what it must not touch, and the traps that cost us time.
You will receive it by email, as a zip.
The kit arrives as a zip, in one email.
It is on its way. Look for an email from hello@avatarnorge.no, and check spam if it is not there in a few minutes.
Tell us what your business is like and what you need, and we will get back to you.
hello@avatarnorge.no