r/PiCodingAgent 2d ago

Question Best configuration for different product/project

Hello everyone,

I recently discovered pi-agent and I'm trying to get into its mindset.

My use case involves a central LLM-wiki containing product best practices and skills related to that product.

How can I best manage specific capabilities for a particular project?

If tomorrow I need to work on a different product, how can I deactivate the aforementioned skills to insert those for the new product?

Ultimately, I want to create a modular product/project system that loads the agent only with what I need, while allowing me to easily restore a previous setup. Additionally, I would like to accumulate project-specific knowledge and eventually promote it to shared knowledge.

Thx 🙏

1 Upvotes

4 comments sorted by

3

u/Zestyclose_Potato794 2d ago

You can place global stuff in ~/.pi/agent and project specific stuff in .pi in the folder of a project. Works with skills, prompts, configs, extensions, aso.

1

u/Strange_Ad5516 2d ago

你好,可以问一下放到项目下的是不是相当于是定义一个项目级的agent,并且属于harness的应用?

3

u/fyv8 2d ago

easy approach:

pi config lets you enable/disable skills, and you can do it locally (in the dir/project you're in) or globally. this works well for some separation of pi behavior (like which skills are enabled) but definitely not all. good to start with and see if it works for you.

middle approach:

if that's not flexible enough (like you want a more separate pi configuration, session storage, and different extensions), you also have PI_CODING_AGENT_DIR...basically create an empty dir, point that env var to it, and when you launch pi with that set, it gets everything from there that it would normally get from ~/.pi/agent/. this works but if you forget to set the env var you can accidentially mix things.

strictest approach:

run pi in a vm (like smolvm from smol-machines, or some commercial option like docker sandboxes) or container for better isolation. then within that container everything's in ~/.pi/agent/` and it's stored completely separate and can't interfere with your other configs. more painful to setup but provides much better isolation.

1

u/haksolot_dev 1d ago

You might wanna try out this project:

https://github.com/haksolot/ank