Skip to content

feat: read/write project config as agent-accessible tool #473

Description

@zeroasterisk

Problem

Agents cannot programmatically read or modify their project's configuration (templates, env vars, shared directories, agent defaults). This prevents agents from:

  • Self-replicating project setups across environments
  • Adjusting their own project config based on task requirements
  • Exporting project config for backup or migration

Proposed Solution

Expose project configuration via the Hub API or as agent-accessible tools:

Read config

scion project config get --format json

Returns: templates list, env vars (names only, not values), shared directories, agent defaults, project metadata.

Write config

scion project config set --from-file config.json

Applies: template assignments, env var names (values provided separately via secrets), shared directory mappings.

Security Considerations

This could be a security concern and may warrant restricted implementation:

  • Read config: Low risk if secrets/values are excluded (only names and structure). Medium risk if it exposes env var values or connection strings.
  • Write config: Medium-high risk — an agent modifying its own project config could escalate privileges, change template assignments, or alter env vars that affect other agents in the same project.

Possible mitigations

  • Read-only by default, write requires explicit admin approval
  • Write operations logged and auditable
  • Env var values never readable (only names)
  • Secrets never included in read or write
  • Write restricted to project-level settings, not hub-level
  • Rate limiting on config writes

Use Cases

  1. Agent sets up a new project to match a known-good configuration
  2. Agent exports its project config for documentation or replication
  3. CI/CD pipeline provisions projects programmatically
  4. Agent adjusts template assignments based on task type

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions