Ollama Models
Install and manage your Ollama models
{isChecking ? (
) : (
)}
Check Updates
{
const value = e.target.value;
setSearchQuery(value);
setModelString(value);
}}
disabled={isInstalling}
/>
Browse models at{' '}
ollama.com/library
{' '}
and copy model names to install
handleInstallModel(modelString)}
disabled={!modelString || isInstalling}
className={classNames(
'rounded-lg px-4 py-2',
'bg-purple-500 text-white text-sm',
'hover:bg-purple-600',
'transition-all duration-200',
'flex items-center gap-2',
{ 'opacity-50 cursor-not-allowed': !modelString || isInstalling },
)}
whileHover={{ scale: 1.02 }}
whileTap={{ scale: 0.98 }}
>
{isInstalling ? (
) : (
)}
{allTags.map((tag) => (
))}
{filteredModels.map((model) => (
{model.name}
{model.desc}
{model.size}
{model.installedVersion && (
v{model.installedVersion}
{model.needsUpdate && model.latestVersion && (
v{model.latestVersion} available
)}
)}
{model.tags.map((tag) => (
{tag}
))}
{model.installedVersion ? (
model.needsUpdate ? (
handleUpdateModel(model.name)}
className={classNames(
'px-2 py-0.5 rounded-lg text-xs',
'bg-purple-500 text-white',
'hover:bg-purple-600',
'transition-all duration-200',
'flex items-center gap-1',
)}
whileHover={{ scale: 1.02 }}
whileTap={{ scale: 0.98 }}
>
Update
) : (
Up to date
)
) : (
handleInstallModel(model.name)}
className={classNames(
'px-2 py-0.5 rounded-lg text-xs',
'bg-purple-500 text-white',
'hover:bg-purple-600',
'transition-all duration-200',
'flex items-center gap-1',
)}
whileHover={{ scale: 1.02 }}
whileTap={{ scale: 0.98 }}
>
Install
)}
))}
{installProgress && (
{installProgress.status}
{installProgress.downloadedSize} / {installProgress.totalSize}
{installProgress.speed}
{Math.round(installProgress.progress)}%
)}
);
}