# Native Planet x Keep - Isko Build
Native Planet's customers are Urbit home gamers who have a focus on sovereignty and decentralization, but who are also willing to invest in premium tooling for their home gaming experience.
Quartus has long provided Urbit power users with tools for maximalizing user control over Urbits.
We are excited to bring some of these tools to Native Planet users, starting with Keep, our existing agent "state" backup tool.
## Isko - A Custom Build of Keep
To meet the expectations of Native Planet's discerning consumer, Quartus will create an updated, bespoke build of Keep just for use in `GroundSeg` enabled environments. The Isko build of Keep will help Native Planet users integrate Keeps backup routines with `StarTram` technology, in addition to the existing Keep behavior.
Isko, named for the Cree phrase `iskonama-so-w`, which we understand to mean "he keeps something for himself", will add the following features to the existing feature-set of Keep (which include backup and restoration of state to agent, automatic re-"wrapping" of agents in the Keep library, and timed backups, amongst others):
- Add a command to backup all (non-core-system) agents
- These agents must be wrapped in the library that Keep ships with
- The must also be discovered, catalogued, and surfaced in an interface to afford the users of `Isko` Keep a `git-ignore` type property when using this feature
- Include in backups an instruction set that `Isko` Keep can interpret into commands to install the applications, so that users can automatically restore state to not-yet-installed agents through another new feature, namely
- Add to the restore functionality the ability to attempt to install the software from the backup instructions that we'll now be recording to the backups.
- Include Some or All (TBD) of Settings Store, S3-Store, and investigate if any other "closer-to-core" desks can be safely backed up.
## Detailed Description of Changes
- Add 'backup all' feature to existing `pokes`
- This will need internal logic to handle the concept
- The app will need to ensure that all agents are wrapped, and/or rewrap them, before attempting a backup
- Backups will need to be reformatted to include, as a file, or in their directory naming convention, a source ship and desk for the agent being backed up such that, on restoration, an attempt can be made to install the desk, automatically, from the source, before attempting to restore state.
- Renovate restoration functionality to expect this new directory naming convention or file
- This will require a thread to attempt to perform the install, which will then watch `clay` to determine if the install was successful or not.
- In a failure case, the agent will likely want to send a notification to the user, potentially using `hark`, which would be an additional change.
- Probe at Core agents to determine what is safe to back up (s3 at minimum)